最近在閱讀《Java編程思想》的時候看到了書中對異常的描述,結(jié)合自己閱讀源碼經(jīng)歷,談?wù)勛约簩Ξ惓5睦斫?。首先記住下面兩句話?/p>
除非你能解決(或必須要處理)這個異常,否則不要捕獲它,如果打算記錄錯誤消息,那么別忘了把它再拋出去。
異常既代表一種錯誤,又可以代表一個消息。
一、為什么會有異常
這個問題其實不難理解,如果一切都按我們設(shè)計好的進行,那么一般(不一般的情況是我們設(shè)計的就是有缺陷的)是不會出現(xiàn)異常的,比如說一個除法操作:
public int div(int x,int y){ return x/y; }
當然我們設(shè)計的是除數(shù)不能為0,我們也在方法名上添加了注釋,輸出不能為0,如果用戶按照我們的要求使用這個方法,當然不會有異常產(chǎn)生??墒呛芏鄷r候,用戶不一定閱讀我們的注釋,或者說,輸入的數(shù)據(jù)不是用戶主動指定的,而是程序計算的中間結(jié)果,這個時候就會導致除數(shù)為0的情況出現(xiàn)。
現(xiàn)在異常情況出現(xiàn)了,程序應(yīng)該怎么辦呢,直接掛掉肯定是不行的,但是程序確實不能自己處理這種突發(fā)情況,所以得想辦法把這種情況告訴用戶,讓用戶自己來決定,也就是說程序需要把遇到的這種異常情況包裝一下發(fā)送出去,由用戶來決定如何處理。
異常表示著一種信息。熟悉EOFException的程序員一般都會了解,這個異常,表示信息的成分大于表示出現(xiàn)了異常,不熟悉的參照我之前的博客:http://www.