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:如果例外是自己抛出的,应该不会忽略,如果是系统抛出的,怎么做才能不忽略呢?

  • 相关阅读:
    Mysql学习笔记
    【转】数据库设计:物理结构设计
    primary key与unique的区别
    服务器端口
    事务 脏读、不可重复读、幻影读的分析
    数据库 count和sum区别
    c#局域网聊天软件的实现
    使用jstack分析java程序cpu占用率过高
    典型的垃圾收集器
    垃圾收集算法
  • 原文地址:https://www.cnblogs.com/parsifal/p/2098415.html
Copyright © 2011-2022 走看看