Java基础 捕获异常 灵魂四问

发布时间 2023-10-21 16:35:47作者: 嘎嘎鸭2

一、如果 try 中没有遇到问题,怎么执行?

答:会把 try 里面所有的代码全部执行完毕,不会执行 catch 里面的代码。只有当出现了异常才会执行 catch 里面的代码

 

二、如果 try 中可能会遇到多个问题,怎么执行?

答:会写多个 catch 与之对应。如果我们要捕获多个异常,这些异常中如果存在父子关系的话,那么父类一定要写在下面

补充:JDK7以前,一个 catch 只能处理一个异常信息。JDK7开始,可以在 catch 中同时捕获多个异常,中间用 | 隔开,表示如果出现了 a 异常或者 b 异常的话,采取同一种处理方案

 

三、如果 try 中遇到的问题没有被捕获,怎么执行?

答:相当于 try...catch 的代码白写了,最终还是会交给虚拟机进行处理,采取 JVM 默认处理异常的方式

 

四、如果 try 中遇到了问题,那么 try 下面的其他代码还会执行吗?

答:不会执行。会直接跳转到对应的 catch 当中,执行 catch 里面的语句体,但是如果没有对应的 catch 与之匹配,那么还是会交给虚拟机处理