07-让异常成为例外
11.6 让异常成为例外
到目前为止已经讲解了什么是异常处理,以及如何处理异常,大家可能想把它用在所有错误处理中:不论是一般的预期错误,还是那些非预期错误。毕竟,抛出一个错误很简单,当遇到一个不知该如何处理的情况时,“放弃”又是一件很容易的事情。不过,异常处理是有一定成本的。除了异常未被捕获时可能存在的风险(程序崩溃),异常本身也会带来一定的性能开销。因为异常必须“展开”堆栈轨迹,直到遇到catch块。这样一来,JavaScript解释器就需要一些额外的开支。随着计算机运算速度的增加,这一点逐渐变得不需要太过担心了,但是,在频繁使用的执行路径中抛出异常还是会造成一些性能问题。
记住,一旦抛出异常,就一定要捕获它,除非想让程序崩溃,否则绝不能视而不见。在处理那些没有预期到的错误时,最好用控制流语句来处理预期错误,而把异常当做最后一道防线。