• Java 应用中对于异常处理的一般策略


    在 Java 应用中,各种异常(Exception)是不可避免的,那么对于这些异常我们该如何处理才能让异常更容易管理呢?

    一、规避异常

    首先应该规避异常,对于我们的 API 应该保证不会产生异常源,例如返回 Object 的 API,应该保证该 API 不会返回 Null。同时在 API 实现时也要努力规避异常。

    二、异常封装与转换

    基本异常都是 Java API 提供给我们的,而这些异常一般都用词生硬,晦涩难懂,很难将具体底层异常和 Java 应用的实际业务联系起来。为此我们应该努力构建一个符合当前 Java 应用的异常体系,这个异常体系尽量贴近当前Java应用的实际业务需求。这样我们可以将抛出的底层异常封装到我们自定义的异常体系中来。

    一般是 catch 到 Lower Level Exception,但是向外抛出的却是 Higher Level Exception,对异常进行转换。

    在异常封装与转换中做的最好是 Spring 的 DAO 异常体系,具体可以参考。

    三、异常链

    对于封装和转换的异常应该保留最底层原始的错误信息,即 root cause。只要向外抛出异常,就应该讲 root cause 异常抛出,这样最上层的异常就可以轻松获取底层异常信息。

    在自定义异常体系的时候可以直接让异常存在支持异常链的构造器,对于不支持异常的异常,可以利用 Throwable 的 initCause() API 设置。

    四、降低异常损失

    出现了异常同时应该努力降低异常所造成的损失。能 rollback 的尽量 rollback,不能 rollback 的做其它一些补救措施,同时别忘了打log利于日后分析解决。

  • 相关阅读:
    c# 事件阻断
    正则语义化API
    c# 防止继承和单例
    Maxscript 控制流混淆
    3dmax快速安装补丁的方法
    c# 使用类中的方法更新自己
    Maxscript 变量作用域
    Maxscript 键值对
    Maxscript 数据结构和算法记录
    Datawhale 之NLP学习-打卡(五)
  • 原文地址:https://www.cnblogs.com/orientsun/p/2575814.html
Copyright © 2020-2023  润新知