zoukankan      html  css  js  c++  java
  • java编程思想概括(第九章)异常与错误处理

    异常与错误处理

    异常处理是java中唯一正式的错误报告机制,并且通过编译器强制执行。

    1. 基本异常:异常情形不能继续下去,因为在当前环境下无法获得必要的信息来解决问题。要从当前的环境中跳出,并且把问题提交给上一级别的环境。

    2. 异常形式参数:标准异常类有两个构造器:1)缺省构造器2)接受字符串作为参数。

    3. 捕获异常:监控区域(guarded region

    Try块:放置所有动作。

    异常处理程序(Exception handler):用关键字catch表示。

    4. 终止与恢复(Termination vs. Resumption):异常处理理论上的两种模型:终止模型,恢复模型。选择使用终止模型,忽略恢复行为。

    5. 创建自定义异常:Throwable类中声明的printStackTrace()方法,打印“从方法调用处直到异常抛出处”的方法调用序列。

    ThrowablegetMessage()方法,能产生更详细的信息,对于异常类来说,getMessage()方法有点类似于toString()方法。

    6. 异常说明:exception specification,它属于方法声明的一部分,紧跟在形式参数列表之后。

    7. 捕获所有异常:使用Exception这个类获取异常。它从Throwable继承的一些方法:来详细表述异常的信息。

    8. 重新抛出异常:把当前异常重新抛出,那么printStackTrace()方法显示的将是原来异常抛出点的调用栈信息,而并非重新抛出点得信息。要想更新这个信息,你可以调用fillInStackTrace()方法,这将返回个Throwable对象,它是通过把当前调用栈信息填入原来那个异常对象而建立的。

    9. 异常链:Exception chaining:Throwable的子类中,只有三种基本的异常类提供了带cause的构造器。它们是Error(用于java的虚拟机报告系统错误)、Exception,以及RuntimeException。如果你要把其它类型的异常链接起来,你应该使用initCause()方法而不是构造器。

    10. java标准异常:Throwable对象可以分为两种类型:Error用来表示你不用关心的编译期和系统错误,Exception是可以被抛出的基本类型。

    运行期异常:从RuntimeException继承,未被检查的异常unchecked exception,代表的是编程错误。

    使用finally进行清理:总能被执行。

    11. finally用来做什么:把除内存之外的资源恢复到它们的初始状态。

    缺憾:异常丢失。

    12. 异常的限制:当重载方法的时候,只能抛出在父类方法的异常说明里列出的那些异常。在继承和重载的过程中,方法的“异常说明的接口”不是变大了而是变小了——这恰好和类接口在继承时的情形相反。

    13. 构造器(Constructor:在构造器中,进行异常的处理。避免使用finally进行资源的清除。

    14. 异常匹配:找“最近”的异常,找到之后,认为异常处理,就不再继续查找。若catch子句得不到执行,会报告错误。

    15. 其他可选方式: 为了方便程序员处理错误,只有在你知道如何处理的情况下才捕获异常。

    16.  把“被检查的异常”转换为“不检查的异常”:将异常包装进RuntimeException里面;若需获取该异常,利用getCause()获取原“被检查的异常”对其进行处理。

     

     

    ——————————如果不豁出性命的话,也是无法开创未来的。
  • 相关阅读:
    A. Vanya and Table
    B. Chris and Magic Square
    A. Bus to Udayland
    关于cout输出精度问题
    1087 1 10 100 1000
    1080 两个数的平方和
    CODE[VS] 1842 递归第一次
    CODE[VS] 1501 二叉树最大宽度和高度
    少年中国说
    CODE[VS] 1475 m进制转十进制
  • 原文地址:https://www.cnblogs.com/thirller/p/2932685.html
Copyright © 2011-2022 走看看