對於異常處理
技巧1:避免使用異常來控制程序的執行流程
如果能用if/else來控制程序流程就 千萬不用try/catch,因為拋出異常會創建一個新的對象。Throwable 接口的構造函數調用名為 fillInStackTrace()的本地方法,fillInStackTrace()方法檢查棧,收集調用跟蹤信息。只要有異常被拋出, VM 就必須調整調用棧,因為在處理過程中創建了一個新的對象。 異常只能用於錯誤處理,不應該用來 控制程序流程。
技巧2:盡可能重用異常
因為生成一個新的異常對象要花費大量的時間,所以 與其創建新的還不如重用已有的。
技巧3:吧try/catch語句移出循環
因為放在循環裡面會占用 大量開銷。所以移出循環是上上策。