1.数组下标越界
2.多个处理异常
上面这两个代码的区别就是有无
System.out.println("抛出了NumberFormatException");
System.out.println("抛出了ArrayIndexOutOfBoundsException");
第一种是不论捕获到哪种异常,都只会调用e.printStackTrace()方法,打印出异常的堆栈跟踪信息。
第二种是即使只有一个异常被抛出,也会输出两行提示信息,这可能会误导阅读代码的人,让他们以为两个异常都发生了。
3.捕获所有异常
4.throws关键字
这个代码示例展示了如何在Java中处理由方法调用链中的底层方法抛出的异常。通过在不同的方法层使用throws
关键字和try-catch
块,可以控制异常的传播和处理方式。在这个例子中,异常从底层funA
传播到中间层funB
,并最终在顶层funC
中被捕获和处理。
4.throws语句