java中怎么同时捕获try代码块中的多个异常

img

问题:为什么我这里的输出结果只能够捕获到数组长度溢出这个异常,而捕获不到算术异常呢,如果这样写不能同时捕获两个异常的话,那又有什么意义呢,不如直接就用Exciption去当参数,写一个catch语句就好了

数组越界异常就直接进catch了,后面代码又没走。而且你用一个Exciption 是没问题的,但假如你想在捕获到某个异常时处理一些其他的逻辑,那你是不是要去判断,如果有多个catch,你可以某个catch处理一些自己的逻辑

把每个语句单独try--catch一下,这样就能捕获到两个异常了,因为try内异常产生地点到catch 都不会执行!

用catch里的异常使用 | 隔开就可以
像这样:

 try {
            
        }catch (NullPointerException|IndexOutOfBoundsException exception){
            exception.printStackTrace();
        }

别问了,不能同时出俩异常
只能出一个解决一个,
上课老师没说吗

不可能同时出两个异常的,当第一个异常抛出的时候,程序就结束了,这里catch两个异常是想针对不同的异常做不同的事,如果直接catch Exception异常,太大了,当已经确定会抛出某个异常的时候,捕获指定的异常类,而不是为了偷懒,直接捕获最大的异常类