抛出异常

2020-02-09 16:03:49来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

抛出异常

更新记录

【1】2020.02.09-18:15

1.完善内容

正文

我们去学习Java的异常处理的时候,肯定写过抛出异常的方法
但是如果你将代码改成这个样子:

public class exception {
    public static void test() throws ClassCastException{
        int[] arr = new int[-3];
    }
    public static void main(String[] args) {
        int a = 3, b = 0;
        System.out.println("start");
        try {
            test();
        }
        catch(ClassCastException cce) {
            cce.printStackTrace(System.out);
        }
        catch(Exception e) {
            e.printStackTrace(System.out);
        }
        System.out.println("finish");
    }
}

上面的实例中test本应该抛出NegativeArraySizeException异常
然而我们将它改为了ClassCastException
那运行结果怎么样呢?

start
java.lang.NegativeArraySizeException
    at exception.test(exception.java:3)
    at exception.main(exception.java:9)
finish

从上面的运行结果中,我们可以看出,catch代码块依然正常的接收到了异常信息
那能不能说明catch(ClassCastException cce)与throws ClassCastException正常运作只不过是printStackTrace(System.out)的内容改变了呢?
别急着下结论,先再改改代码观察一下结果
这一次,我们删除catch(Exception e)

public class exception {
    public static void test() throws ClassCastException{
        int[] arr = new int[-3];
    }
    public static void main(String[] args) {
        int a = 3, b = 0;
        System.out.println("start");
        try {
            test();
        }
        catch(ClassCastException cce) {
            cce.printStackTrace(System.out);
        }
        System.out.println("finish");
    }
}

以下是运行结果:

start
Exception in thread "main" java.lang.NegativeArraySizeException
    at exception.test(exception.java:3)
    at exception.main(exception.java:9)

结果怎么样?finish没有被输出,也就是说NegativeArraySizeException异常没有被接收到
所以我们可以看出:throws ClassCastException并不是意味着这个类抛出的异常全是ClassCastException异常
也有可能是别的。

另外,直接自定义名称是不可以的,像

public static void test() throws LalalaException{
    int[] arr = new int[-3];
}

直接写是不行的,必须实现LalalaException类。


原文链接:https://www.cnblogs.com/zythonc/p/12287997.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:基于S2SH开发学生考勤管理系统 附源码

下一篇:异常输出