两种在try/catch中使用finally的情况会造成异常丢失:
多层try/catch且finally处于内层
内层的try/catch中的finally如果抛出异常,就会丢失外层try/catch的异常。
Thinking in Java中阐述其原因是“前一个异常还没处理就抛出下一个异常”。
在finally中return
将会丢失所有异常。
转载于:https://blog.51cto.com/bananalighter/1225944
两种在try/catch中使用finally的情况会造成异常丢失:
多层try/catch且finally处于内层
内层的try/catch中的finally如果抛出异常,就会丢失外层try/catch的异常。
Thinking in Java中阐述其原因是“前一个异常还没处理就抛出下一个异常”。
在finally中return
将会丢失所有异常。
转载于:https://blog.51cto.com/bananalighter/1225944