zoukankan      html  css  js  c++  java
  • 《Effective Java》读书笔记八(异常)

    No57 只针对异常的情况才使用异常

    异常应该只用于异常的情况下,它们永远不应该用于正常的控制流。

    No58 对可恢复的情况使用受检异常,对编程错误使用运行时异常

    Java程序设计语言提供了三种可抛出结构(throwable):受检的异常(checked exception)、运行时异常(run-time exception)和错误(error)。

    1. 如果期望调用者能够适当地恢复,对于这种情况就应该使用受检的异常。
    2. 用运行时异常来表明编程错误。例如:数组访问下标越界。
    3. 错误往往被JVM保留用于表示资源不足、约束失败,或者其它使程序无法继续执行的条件。

    No60 优先使用标准的异常

    表60 常用的异常

    异常

    使用场合

    IllegalArgumentException

    非null的参数值不正确

    IllegalStateException

    对于方法调用而言,对象状态不合适

    NullPointerException

    在禁止使用null的情况下数值为null

    IndexOutOfBoundsException

    下标参数值越界

    ConcurrentModificationException

    对禁止并发修改的情况下,检测到对象的并发修改

    UnsupportOperationException

    对象不支持用户请求的方法

    No62 每个方法抛出的异常都要有文档

    始终要单独地声明受检的异常,并且利用Javadoc的@throws标签标记,准确地记录下抛出每个异常的条件。

    No63 在细节消息中包含能捕获失败的信息

    为了捕获失败,异常的细节信息应该包含所有“对该异常有贡献”的参数和域的值。例如:IndexOutOfBoundsException异常的细节消息应该包含下界、上界以及没有落在界内的下标值。

    No65 不要忽略异常

    如果有空的catch块,至少,此catch块也应该包含一条说明,解释为什么可以忽略这个异常。

  • 相关阅读:
    Spring static 静态属性注入
    大众点评Cat--架构分析
    rxjava
    TCP/IP协议三次握手与四次握手流程解析
    [SDOI2014]数数
    CF-GYM101741K. Consistent Occurrences
    [JSOI2012]玄武密码
    [POI2000]病毒
    [JSOI2007]文本生成器
    [HNOI2006]最短母串问题
  • 原文地址:https://www.cnblogs.com/nayitian/p/3250039.html
Copyright © 2011-2022 走看看