zoukankan      html  css  js  c++  java
  • Effective JAVA 中有关Exception的几条建议

    这本书是从JDK源码注释阅读鼓捣来的,最近对exception产生了兴趣,看一下这位大牛都说了些什么?

    (Item  39- 47 论述了有关exception的那点事 )

    Item 39:Use exceptions only for exceptional conditions

    只有在例外的情况下才能使用例外

    Q:?

    -----------------

    Item 40:Use checked exceptions for recoverable conditions andrun-time exceptions for programming errors

    对可恢复情况使用受检查例外,对程序错误使用运行时例外。

    Q:怎样判断是可恢复情况以及程序错误?

    --------------------------

    Item 41:Avoid unnecessary use of checked exceptions

    避免不必要的检查异常。

    Q:什么是检查异常(checked exceptions)?

    A:先来看一下异常机制的一个鸟瞰:

       例外的继承机制

    异常类Exception又分为运行时异常(RuntimeException)和非运行时异常(上图没有标出),这两者有时候又称为检查异常和非检查异常。如果可以从一个异常中恢复过来,就声明该异常是检查异常(checked exception),故而有这么一说:检查异常一般是不定义的。反言之,如果不能从该例外中做任何有助于恢复的动作,该例外就是个未检查异常(unchecked exception),就是必须处理的异常,不处理程序就不能编译过去,比如IOException, SQLException这些用户自定义的异常。

    --------------------------

    Item 42:Favor the use of standard exceptions

    习惯于使用标准例外

    Q:有哪些所谓标准例外?

    A:

    ---------

    Item 43: Throw exceptions appropriate to the abstraction

    将例外抛到适宜的抽象层次

    Q:怎样控制错误链中例外抛出的长度?

    ---------

    Item 44:Document all exceptions thrown by each method

    对每个方法的例外抛出要给出文档

    ------------------------------

    Item 45:Include failure-capture information in detail messages

    在底层消息中把失效捕获信息包括进来。

    Q:什么是失效捕获信息?

    ------------------------------

    Item 46:Strive for </vetbfailure atomicity

    Q:?

    ---

    Item 47:Don't ignore exceptions

    不要忽略例外

    Q:如果例外是自己抛出的,应该不会忽略,如果是系统抛出的,怎么做才能不忽略呢?

  • 相关阅读:
    如何将jar包加入到Maven本地仓库
    dubbo 常见错误
    关于spring”通配符的匹配很全面, 但无法找到元素 'context:component-scan' 的声明“的错误
    Maven类包冲突终极三大解决技巧 mvn dependency:tree
    springMVC传对象参数
    scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名
    CATALINA_BASE与CATALINA_HOME的区别
    有return的情况下try catch finally的执行顺序(最有说服力的总结)
    Slf4j MDC 使用和 基于 Logback 的实现分析
    Docker 系列01: Centos7.3 上安装docker
  • 原文地址:https://www.cnblogs.com/parsifal/p/2098415.html
Copyright © 2011-2022 走看看