前言:
- 起初是因为想着try catch后不要中断代码,可以继续执行
- 但因为外层已经有了一层try catch,好奇如果try catch嵌套try catch会是什么效果
结论:
- 结论1:外层try catch里面可以嵌套try catch
- 结论2:try catch的执行顺序是,如果内层try catch捕获到了异常,则外层try catch不会捕获异常,而是随着代码继续执行
- 结论3:如果内层try catch未捕获到异常(比如内层的catch只写了捕捉一个细分类型的异常,但报了另一个异常),则会触发外层的try catch,若外层catch捕获异常成功,则会继续执行catch代码块中的内容
注意:
- 若一个try存在多个catch,则会按照catch的代码顺序从上到下尝试捕获异常
- 若某个catch捕获到异常,则会进入相应的catch代码块,剩下的catch则会被跳过