异常总结

 

异常的继承结构

public static void main(String[] args) {
//        testQuickSort();
        double e = 1.0 / 0;        // Runtime Exception
        
        try {
            Thread.sleep(2000);    // 编译时异常
        } catch (InterruptedException e1) {
            e1.printStackTrace();
        }
        
}

 

 

 

 

 

 

 

 

 

1.0 / 0 为Runtime Exception, 即Unchecked Exception

Thread.sleep(2000) 为Checked Exception, 即编译器可以检查到的异常

 

异常的处理

 

捕获异常--TryCatch语句的执行顺序

一段代码可以抛出多个 catch,捕获异常时顺序检查 catch语句,一旦执行一个catch语句,其他的catch语句被忽略

基于这一原则,安排catch语句时,应该首先把子类异常放在前面,父类异常放在后面,否则,子类异常将会被忽略。

 

不管是否遇到异常,finally{ }语句块总要执行,遇到throw和return语句,finally语句还是会执行,但是如果遇到

System.exit(),则finally语句则不会再执行

 

 

声明异常--throws的使用规则

继承中进行方法重写时,子类中抛出的异常的范围不能超过父类

  * 父类中方法没有声明异常,则子类中也不能声明异常

  * 父类中声明了异常,则子类中声明的异常必须为 该类异常或该类异常的子类

 

posted @ 2018-05-21 15:35  Cappuccinom  阅读(127)  评论(0编辑  收藏  举报