一.JVM虚拟机默认处理异常的方式:
-
把异常的名称,异常的原因以及异常出现的位置等信息输出在了控制台。
-
程序停止执行,下面的代码不会再执行了。
例如:
二.try...catch捕捉异常:
例如:
改用try...catch:
详解:
三.try...catch灵魂四问:
a.如果try中没有遇到问题,怎么执行?
此时会把try里面的所有代码全部执行完毕,不会执行catch里面的代码
注:只有当出现了异常,才会执行catch里面的代码。
例如:
b.如果try中可能遇到多个问题,怎么执行?
会写多个catch与之对应
细节:如果我们要捕获多个异常,这些异常中如果存在父子关系的话,那么父类(Exception最大的异常)一定要写在最下面。**
写上面会报错->原因如下:
优化:
扩展:
c.如果try中遇到的问题没有被捕获,怎么执行?
相当于try...catch的代码白写了,最终还是JVM虚拟机默认处理异常的方式。
例如:
d.如果try中遇到了问题,那么try下面的其他代码还会执行吗?
下面的代码就不会执行了,try中遇到的问题直接跳转到对应的catch语句当中,执行catch里面的语句体
但是如果没有对应的catch语句与之匹配,那么还是会JVM虚拟机默认处理异常的方式。
例如: