对于异常处理


技巧1:避免使用异常来控制程序的执行流程

如果能用if/else来控制程序流程就千万不用try/catch,因为抛出异常会创建一个新的对象。Throwable 接口的构造函数调用名为 fillInStackTrace()的本地方法,fillInStackTrace()方法检查栈,收集调用跟踪信息。只要有异常被抛出,VM 就必须调整调用栈,因为在处理过程中创建了一个新的对象。  异常只能用于错误处理,不应该用来控制程序流程。


技巧2:尽可能重用异常

因为生成一个新的异常对象要花费大量的时间,所以与其创建新的还不如重用已有的。


技巧3:吧try/catch语句移出循环

因为放在循环里面会占用大量开销。所以移出循环是上上策。