java中關於異常機制的認知和隨感

突然發現好久沒有寫博客了。雖然是感覺沒有什麼好寫的,但其實深究其原因還不是自己懶~或是自己最近沒有學到什麼像樣子的技術?

這一個月中,我學習到的東西也不能說沒有。其中dubbo,zookeeper,對異常的加深,前端的一些小知識,算是有點可圈可點之處。

算了,廢話不多說了,直接進入主題吧,這篇文章沒有代碼,還望海涵!

異常的分類

說道異常,通常和其對比的就是錯誤error。但是這是簡單的,大家都知道錯誤是我們無法改正的,畢竟不是自己寫的,而是sun大神們自己弄出來的,或是你的環境的某些原因。因此錯誤就不談。而異常就是throwable下的另一個大分支。
異常分類的話,基本少上就兩點(本人理解),一個是jdk給你定義的,一個是你自己定義的。
jdk給你定義的異常一般是:空指針異常,類型轉化異常,沒有找到相關類,強制轉換異常,數據庫異常,io流異常等等;而自己定義的異常就是要看你自己怎麼寫的。就比如我可以一個 陌殤塵Exception(極不不規範,不建議)。

異常的處理

我們通常覺得異常比較麻煩或是有點困難,並不是在於異常的分類,而是關於異常的處理。
關於異常的處理,我感覺有兩種分類:1、(異常內部自己相關處理);2、(自己捕獲到異常然後進行相關的處理)。
不同情況使用不同的方法,不過筆者還是喜歡後者。
而對於try catch finally這三小弟來說,就沒有什麼太大的難度了。
一般代碼是寫在try中,如果中間出現了異常,就會運行catch中的代碼。而如果catch中還出現了異常並且沒有相關的處理,那就說明:童鞋,你的代碼得修改修改了,不能這麼不規範。而finally中一般都是關閉資源流的地方。所以不管是try運行完,還是catch運行,或是沒有運行,finally都是會運行的。
有一個小點的說一下,就是try,catch, finally,暈倒return 會是什麼情況。這點上一段就說明了,只要開始了try,finally就肯定會運行。這意味着,try中的return也是要到finally執行完之後才能運行。這其中的過程是這樣的:
try中代碼跑呀跑,跑到一半看到return這個大漢說:“前面沒路了,給你個糖帶回去吧”。這個時候try的反應就是“呀!沒路了,要哦結束了,我得給我finally老爸說聲”。通知了finally之後,finally就趕緊收拾完東西,跑回去了,還把那個糖上交給老婆大人(函數)。然後整個函數(方法)結束。
而關於異常處理的這一點,現在再談。異常,其實就是一個比較特殊的類而已。我們捕獲的異常就是個簡單的對象,裏面包含了一些軌跡呀,錯誤信息呀什麼的。你只要把這個異常當做正常的對象進行接收,然後處理就行了。

說了這麼多,結果還沒有上幾行代碼,真是萬分的難受大哭。想必讀者也是煞費苦心纔讀完我這篇拙作吧,真是辛苦你們了。如果有什麼看法,還請告訴我,我真的希望自己淺薄的知識能夠進一步得到豐富,謝謝大家!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章