1. 異常拋出后,有幾件事會隨之發(fā)生。首先,使用new在堆上創(chuàng)建異常對象。然后,當(dāng)前的執(zhí)行路徑被終止,并且從當(dāng)前環(huán)境中彈出對異常對象的引用。此時,異常處理機制接管程序,并開始尋找一個恰當(dāng)?shù)牡胤絹砝^續(xù)執(zhí)行程序。這個恰當(dāng)?shù)牡胤骄褪钱惓L幚沓绦颉?/span>
2. 所有標(biāo)準(zhǔn)異常類都有兩個構(gòu)造器,一個是缺省構(gòu)造器,另一個是接受字符串的構(gòu)造器。
3. 異常處理的一個好處是,使你得以先在一個地方專注于正在解決的問題,然后在別的地方處理這些代碼中的錯誤。
4. 異常處理理論的兩種基本模型:終止模型(termination)和恢復(fù)模型(resumption)。Java和C++都使用前者。不過后者也可以實現(xiàn),如把try塊放入while中,不斷進入try塊,直到得到滿意結(jié)果。
5. 創(chuàng)建自定義異常時,建議把信息寫到System.err,因為System.out可能會被重定向。
6. Throwable.printStackTrace方法可以輸出從方法調(diào)用處直到異常拋出處的方法調(diào)用序列,使用時可以不帶參數(shù),或者傳遞一個PrintStream或PringWriter類的引用。