dubbo全局异常处理_基于spring aop的dubbo异常统一处理

dubbo统一异常处理,调用方只显示封装后的异常。

1、返回封装后的Exception

2、返回封装后的统一返回信息

import org.aspectj.lang.annotation.AfterThrowing;

import org.aspectj.lang.annotation.Aspect;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.stereotype.Component;

import com.midea.jr.commons.utils.BeanUtils;

import com.midea.jr.efc.edp.common.bean.Response;

import com.midea.jr.efc.edp.common.enums.ResponseCodeEnum;

import com.midea.jr.efc.edp.common.exception.BizException;

/**

*

Project:

*

Module:

*

Description:

*

* @author wangzy25

* @date 2017年6月12日 上午10:07:58

*/

@Component

@Aspect

public class DubboExceptionInterceptor {

private static final Logger LOGGER = LoggerFactory.getLogger(DubboExceptionInterceptor.class);

@AfterThrowing(throwing="ex",pointcut="execution(* com.midea.jr.efc.edp.api.service.**.*(..))")

public BizException handle(Exception ex){

LOGGER.error("Intercept dubbo exception:{}", ex.getMessage(), ex);

if(ex instanceof BizException){

throw (BizException)ex;

}

//如果是非包装异常,则包装成统一的内部异常

throw new BizException(ResponseCodeEnum.EXCEPTION_INTERAL);

}

@AfterThrowing(throwing="ex",pointcut="execution(* com.midea.jr.efc.edp.api.service.**.*(..))")

public Response> handle(Exception ex){

Response> response = new Response<>();

LOGGER.error("intercept ServiceException:{}", ex.getMessage(), ex);

if(ex instanceof BizException){

BeanUtils.copyProperties( ex, response );

return response;

}

//如果是非包装异常,则包装成统一的内部异常

return new Response<>(ResponseCodeEnum.EXCEPTION_INTERAL);

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534115.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python123平台作业答案第十一周_马哥2016全新Linux+Python高端运维班第十次作业

系统的INPUT和OUTPUT默认策略为DROP&#xff0c;请完成以下关于iptables的题目&#xff1b;iptables -A INPUT -d 10.18.11.13 -p tcp --dport 22 -j ACCEPT #允许ssh端口 iptables -A OUTPUT -s 10.18.11.13 -p tcp --sport 22 -j ACCEPT iptables -P OUTPUT DROP #设置OUTPUT…

义教志愿服务系统c语言,[志愿服务]以己为师 东科学子义教传爱心

为积极响应国家教育计划&#xff0c;丰富孩子们的暑期生活&#xff0c;进一步落实“春泥”课堂先进义教理念&#xff0c;7月12日&#xff0c;浙江海洋大学东海科学技术学院大学生“海岛征程十五载&#xff0c;红色基因永传承”赴蚂蚁岛实践团23名队员走进蚂蚁岛文化礼堂&#x…

主动断开socket链接_TCP连接与断开详解(socket通信)

http://blog.csdn.net/Ctrl_qun/article/details/52518479一、TCP数据报结构以及三次握手TCP(Transmission Control Protocol&#xff0c;传输控制协议)是一种面向连接的、可靠的、基于字节流的通信协议&#xff0c;数据在传输前要建立连接&#xff0c;传输完毕后还要断开连接。…

大整数算术求值 c语言 栈,用C语言实现 多位整数的四则运算,用栈,例如56*(12+20)-102/2...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼gets(szExpression);// 中缀表达式转后缀表达式&#xff0c;结果保存在expression中for (int i 0; i < strlen(szExpression); i){if (isspace(szExpression[i])) // 空白字符{if (bFindBegin){expression[num].type 1;expres…

java可视化压缩_WEB可视化技术发展

EverCraft一直在关注Web可视化技术的发展&#xff0c;本文对国外一篇感觉很不错的综述性文章进行翻译&#xff0c;供这一领域的爱好者相互学习。这篇paper的信息为&#xff1a;“Mwalongo, F., et al., State-of-the-Art Report in Web-based Visualization. COMPUTER GRAPHICS…

thumbdata4删除后果_安卓手机上巨大的.thumbdata4图片预读缓存清理方法

以下是目前找到比较有效的帮 .thumbdata4-文件瘦身的好方法.下面的一大堆废话的核心就是进手机设置>应用程序>显示系统程序>媒体存储器>存储>清除数据/缓存.重启后会发现thumbdata还会出现但是没有数GB那么大了.How do I Reset the AndroidMedia Scan Database?…

android自定义alertdialog不现实输入法,自定义的dialog中的EditText无法弹出输入法解决方案...

1.解决无法弹出输入法&#xff1a;在show()方法调用之前&#xff0c;用dialog.setView(new EditText(context))添加一个空的EditText&#xff0c;由于是自定义的AlertDialog&#xff0c;有我们指定的布局&#xff0c;所以设置这个不会影响我们的功能&#xff0c;这样就可以弹出…

python爬取微博内容_请问该如何通过python调用新浪微博的API来爬取数据?

1&#xff1a;安装python(这个不多说啦) 2&#xff1a;下载新浪微博SDK的python包&#xff0c;解压为weibopy目录 3&#xff1a;申请AppKey&#xff0c; 流程&#xff1a; 1&#xff1a;通过oAuth认证 按我的理解简化如下&#xff1a; 用户在新浪微博给的页面输入账号密码&…

android 保活方案_Android 后台保活手段总结 (上篇)

Android 后台保活手段总结 (上篇)由于众所周知的限制&#xff0c;在国内无法使用GCM推送服务&#xff0c;想要自己搭建推送服务的话&#xff0c;有两个绕不开的技术点&#xff0c;一个是TCP长连的保活&#xff0c;另一个就是后台进程的保活。虽然看起来是老生常谈的问题&#x…

linux修改栈指针x86,为什么x86-64 Linux系统调用会修改RCX,这个值意味着什么?

我正在尝试使用sys_brk syscall在linux中分配一些内存.这是我尝试过的&#xff1a;BYTES_TO_ALLOCATE equ 0x08section .textglobal _start_start:mov rax, 12mov rdi, BYTES_TO_ALLOCATEsyscallmov rax, 60syscall根据linux调用约定,我希望返回值在rax寄存器中(指向已分配内存…

wordpress phpmyadmin_西部数码使用指南:虚拟主机WordPress部署SSL注意事项

版权归西部数码所有&#xff0c;原文链接&#xff1a;https://www.west.cn/faq/list.asp?unid2068注意事项&#xff1a;1.如果您的主题/插件使用绝对地址调用了http请求可能会导致网站打开会乱码&#xff0c;或不能有绿锁标识&#xff0c;需要联系程序提供商将所有http请求修改…

android html转pdf工具,android – 使用iText库将html转换为pdf时未应用hr的内联CSS

我是.NET开发人员,因此代码在C#中.但是你应该能够轻松翻译以下内容.iText是一个PDF优先的库,[X] HTML解析非常复杂,因此在这方面并不完整.每当解析[X] HTML并且事情不按预期的方式进行特定标记时,您应遵循的基本步骤是&#xff1a;>验证XML Worker支持标记&#xff1a;Tags …

python 小说爬虫_从零开始写Python爬虫 --- 1.7 爬虫实践: 排行榜小说批量下载

从零开始写Python爬虫 --- 1.7 爬虫实践&#xff1a; 排行榜小说批量下载Ehco 5 个月前 本来只是准备做一个爬起点小说名字的爬虫&#xff0c;后来想了一下&#xff0c;为啥不顺便把小说的内容也爬下来呢&#xff1f;于是我就写了这个爬虫&#xff0c;他爬下了各类小说排行榜上…

java 某个字符在字符串中出现的所有位置_Java面试常考核心概念

这篇文章专注于Java基础知识&#xff0c;不涉及List、Map、多线程、锁相关的内容&#xff0c;需要的可以查看我的其他博客hofes blog​hhf443.github.ioJDK&JRE&JVMJDK&#xff08;Java Development Kit&#xff09;是针对 Java 开发员的产品&#xff0c;是整个 Java 的…

lan交换和无线教师手册_简单几步,无线路由器变交换机

当原来的路由器lan口不够用&#xff0c;可以加一个交换机扩展lan口数量&#xff0c;如果需要增加的lan口数量不超过3个可以考虑找台不用的无线路由器当交换机用。另外&#xff0c;随着交换机更新家中都有旧无线路由器闲置&#xff0c;完全可以再次利用。下面看一下&#xff0c;…

Linux fast open,Linux内核3.7 TCP Fast Open验证实例

Linux内核在3.6和3.7合入了TCP Fast Open特性&#xff0c;在3.7.3版本上验证了一下&#xff0c;I did it!以下是C语言实例()&#xff1a;server端代码&#xff1a;#include /* See NOTES */#include#include#includeint main(){int portno 5060;socklen_t clilen;char buffer[…

vue 怎么全局到入常量_Vue 中如何定义全局的变量和常量(转)

17.6k 次阅读 读完需要 10 分钟7Vue 中如何定义全局的变量和常量我想要定义一个变量, 在项目的任何地方都可以访问到, 不需要每一次使用的时候, 都引入.尝试1:创建 global.js 并且在其中定义let a 10;在入口文件中引入 global.jsimport ./global.js在项目中使用:a// 报错发…

revit找不到附加模块程序集_TensorFlow基础知识——常用模块(一)

1本节简述对于开展深度学习开发的目标而言&#xff0c;我们需要掌握的除了必要的深度学习理论基础、必要的开发依赖库基础知识、基本的开发套路之外&#xff0c;我们还需要掌握它常见的外围小帮手都有哪些。这些小帮手就是深度学习依赖库中的其他并不是核心的模块&#xff0c;但…

android搭建opencv开发环境,Android Studio搭建opencv开发环境

文章不配图片&#xff0c;阅读需要有Android开发基础并熟悉Android Studio。一、搭建基于Java开发环境以下内容介绍如何搭建基于Java jni的opencv开发环境。1、准备工作从opencv官网下载Android平台开发sdk并解压&#xff0c;假设解压后文件夹名为opencv-4.3.0-android-sdk。(此…

99 网络编程_网络工程师技能图谱,看看你会多少技能

技术推动了时代变革&#xff0c;互联网则加速了这场变革。在蓬勃发展的互联网浪潮下&#xff0c;网络作为基础设施的关键纽带保障着网路流量的顺利流通&#xff0c;维持着赛博世界的繁荣。而在这繁荣之下&#xff0c;生存着这样一个群体——网络工程狮&#xff0c;为网络纽带保…