美文网首页
异常机制1 同时出现父类和子类异常的捕获

异常机制1 同时出现父类和子类异常的捕获

作者: 科学旅行者 | 来源:发表于2016-11-27 20:42 被阅读244次

参考资料:《Java程序设计经典课堂》(清华大学出版社)

通过程序代码来说明同时出现父类和子类异常的捕获的顺序问题。

public class ExceptionErrorDemo {
    public static void main(String[] args) {
        int[] numbers = new int[3];
        try {
            numbers[0] = 1;
            numbers[1] = 3;
            numbers[2] = 7;
            numbers[3] = numbers[2] / 0;//会抛出算术运算异常;
        } catch (Exception e) {
            System.out.println(e.toString());
        } catch (ArithmeticException e) {
            e.toString();
        }
    }
}
/*
ExceptionErrorDemo.java:11: 错误: 已捕获到异常错误ArithmeticException
                } catch (ArithmeticException e) {
                  ^
1 个错误
*/

我们知道,Java中异常类之间也存在继承关系。在这里,Exception类是ArithmeticException类的父类,父类可以捕获它的子类能捕获的所有异常。如果该父类捕获异常的代码出现在子类捕获异常的代码之前,则父类都会先捕获这些异常,导致后面所有子类捕获异常的代码永远得不到执行,从而出现编译错误,将父类放在最后即可解决这个问题。

public class ExceptionErrorDemo {
    public static void main(String[] args) {
        int[] numbers = new int[3];
        try {
            numbers[0] = 1;
            numbers[1] = 3;
            numbers[2] = 7;
            numbers[3] = numbers[2] / 0;//会抛出算术运算异常;
        } catch (ArithmeticException e) {
            System.out.println("已经捕获");
            e.toString();
        } catch (Exception e) {
            System.out.println(e.toString());
        }
    }
}
//执行结果;
/*
已经捕获
*/

相关文章

  • 异常机制1 同时出现父类和子类异常的捕获

    参考资料:《Java程序设计经典课堂》(清华大学出版社) 通过程序代码来说明同时出现父类和子类异常的捕获的顺序问题...

  • Java 异常

    捕获异常 注:对于几个有继承关系的异常要捕获,则子类异常放前面,父类异常放后面,以免父类异常把子类的覆盖后,子类异...

  • Java SE核心II

    1.1.1 Java异常处理机制 异常结构中的父类Throwable类,其下子类Exceptionlei类和Err...

  • 异常在子父类覆盖中的体现

    1.子类在覆盖父类时,如果父类的方法抛出异常。那么子类的覆盖方法只能抛出父类的异常或者该异常的子类。 2.如果父类...

  • 子类继承父类方法

    父类方法抛出异常,子类继承父类,重写父类方法时,抛出的异常“子类抛出的异常类型不能比父类抛出的异常类型更宽泛”。 ...

  • 异常在父类覆盖中的体现

    子类在覆盖父类,如果父类的方法抛出异常,那么子类的覆盖方法只能抛出父类异常或该异常的子类。 原因:。。。。。 如果...

  • 异常在子父类覆盖中的处理

    异常在子父类覆盖中的处理:1,子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常。2...

  • day10-03-面向对象(异常-覆盖时的异常特点)

    异常在子父类覆盖中的体现 1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或该...

  • Java15-1 覆盖中异常的使用

    先看代码 覆盖时,子类方法覆盖父类方法,只能抛出父类方法异常或者该异常的子类如果父类方法抛出多个异常,子类只能抛出...

  • java 异常类

    1.java异常类结构 所有异常的父类:Throwable 两个子类:Error和 Exception Error...

网友评论

      本文标题:异常机制1 同时出现父类和子类异常的捕获

      本文链接:https://www.haomeiwen.com/subject/nsunpttx.html