不要用鄙夷的眼光看待這個標(biāo)題。其實「Shit Happens」是個名言,而且還是個具有禪意的名言。 電影阿甘正傳(Forrest Gump)中,阿甘在跑步時踩到 shit,旁邊一位失意的商人問他對此事的看法,阿甘表情輕松地說:「Shit Happens.」 ,這句話的意思是「人生偶而會有不順?biāo)斓氖掳l(fā)生,沒什么值得大驚小怪的」。這個商人于是將「SHIT HAPPENS」做成標(biāo)語,結(jié)果大賣。 電影下一幕鏡頭出現(xiàn)一臺后面貼有「SHIT HAPPENS」標(biāo)語的汽車,飛來橫禍地被后面的另一臺車子撞了……果真是「Shit Happens」。
「…… 這和本文章有什么關(guān)系???」別急,繼續(xù)看下去吧!
Java 程序員對于例外處理機制(exception handling mechanism)應(yīng)該都不陌生,因為 Java 語言強制程序員必須使用例外處理來捕捉(catch)非執(zhí)行時期(non-runtime)的例外。所以你一定用過 try,catch,finally 這三個 Java 語言的關(guān)鍵詞,而且你也很有可能用過 throw 這個關(guān)鍵詞來將未處理的例外再轉(zhuǎn)出去給 call stack 的下一層 method。但是,你很有可能未曾主動 new 一個例外對象,然后將其丟出。你更有可能未曾定義過自己的例外類別。
在用 Java 設(shè)計中大型系統(tǒng)的時候,常常有必要定義自己的例外類別,并在適當(dāng)時機主動地丟出例外。如此一來可以使得程序更穩(wěn)固。
對于定義自己的例外類別,我的習(xí)慣是:
-
如果此例外屬于
runtime
性質(zhì),且可以補救,則此例外繼承自
java.lang.RuntimeException
。
-
如果此例外不屬于
runtime
性質(zhì),且可以補救,則此例外繼承自
java.lang.Exception
。
-
如果此例外不可以補救,則此例外繼承自
java.lang.Error
。
上述這三點完全是依照 Java 語言對于例外處理的建議,相當(dāng)直覺,我也就不多解釋了。除此之外,我還定義了一個我常用的例外類別,叫做 Shit,其定義如下:
|