- 如果程序的异常可以预见,并对程序的整体运行并无影响的,可以使用try catch捕获异常,日志记录堆栈信息就行了,然后继续执行catch代码块中新的语句,以及随后的代码。
- 如果这个异常出现后导致后续的程序无法运行,或者没有继续运行下去的必要了,那么就throw,把异常抛出,不光是需要告诉外部函数这个异常是什么,也是要终止程序的运行,throw就像一个穿越杆,直接把错误捅到能够对错误负责的函数身上去,像是程序的纪律监察。
- 但是所有throw出去的异常,不管捅到了哪一级的函数,最后一定还是需要 try catch语句去捕获并处理的,否则程序就会死机,崩溃。