使用Dubbo框架,异常处理原则

来源:互联网 发布:手机淘宝怎么发布帖子 编辑:程序博客网 时间:2024/06/05 12:49
  1. 在Dubbo的Service实现中捕获异常,记录异常日志,将异常进行转移为自定义异常抛出,注意自定义异常需是RuntimeException,否则使用Spring事务时,不会出现回滚。
  2. 在dubbo服务的调用层,捕获自定义异常,记录日志进行处理。

下面内容为转载内容:原文地址http://blog.csdn.net/swpihchj/article/details/8058129

异常处理原则
1. 仅处理当前可处理的异常。

  1. 对所有的检查型异常使用异常转译。

  2. 所有的自定义异常都是非检查型异常。

  3. 异常流程与正常流程进行分离,并尽可能的统一处理。

  4. 在非异常处理模块的catch块中尽可能不记日志。

  5. 除非是进行资源释放操作,否则catch块不应为空或者出现e.printTrace

  6. finally块中不能出现复杂的操作,且不可以抛出异常,也不可以出现return。

处理异常的一般方式
1. 将throw语句视为异常流程的起点,将Exception对象视作正常流程向异常流程跃迁过程中的数据载体。

  1. 建立统一的自定义异常类型,用以包装所有检查型异常。

  2. 大多数情况下仅在程序的主干上建立唯一的异常捕获点,并在这个点上对接收到的异常进行处理。

附上自定义异常代码

/**自定义Service异常 * Created by lxliuxuan on 2017/2/10. */public class ServiceException extends RuntimeException {    public ServiceException() {       super("Service层异常");    }    public ServiceException(String msg) {        super("Service层异常:"+msg);    }    public ServiceException(Throwable e) {        super("Service层异常:",e);    }    public ServiceException(String msg, Throwable e) {        super("Service层异常:"+msg,e);    }}
1 0
原创粉丝点击