Java爲什麼使用異常?

Java爲什麼使用異常?

爲什麼使用異常一:

爲什麼要這樣了?這就得首先明白,Java的編程往往是多人之間合作的,每個人負責一個或幾個模塊,從最開始學習Java時你就有使用別人的模塊(你調用的任何Java基礎語法都是由JDK的公司寫好了給你的),你在後面的使用中肯定也會寫模塊給別人調用。

現在就可以舉個例子了,假如說你現在寫一個帶參方法 printf(int num)給你的同事調用,他調用時傳進來的num可能會出現各種各樣的異常情況①,你這時候沒有能力去處理這個錯誤的②,於是你就可以拋出(throw)這個異常信息(Exception對象)給調用你這個方法的人,告訴他出現了大概什麼樣個異常,然後他是處理了再調用還是直接不運行了那是他的事了。

並非所有錯誤都能在編譯期間偵測到。有些問題必須在運行期間解決,讓錯誤的締結者通過一些手續向接收者傳遞一些適當的信息,使其知道該如何正確地處理遇到的問題。 ——Java編程實現

異常處理最根本的優勢就是將檢測錯誤(由被調用的方法完成)從處理錯誤(由調用方法的人完成)中分離出來

爲什麼要使用異常二:

使得每次調用一個方法時都要進行的全面、細緻但又是重複的工作合併不再重複。
爲什麼敢這麼說了?假如你要調用A、B、C、D、E五個方法。期中A、B、C三個三方都做了對傳入參數爲空的驗證,C、D、F都有對參數做了"過長"的校驗。那麼你就要對A、B、C的返回結果校驗,看是否有出現了參數爲空的異常,對C、D、F返回結果校驗,看是否出現參數過長的異常③。而使用異常機制後,我們直接一個catch (NullPointerException e)就可以接收所有參數爲空的情況,直接一個catch (MyLongException e)④就可以接收所有參數過長的情況。甚至你可以直接一個catch (Exception e)⑤接收所有異常情況。

附註:
①比如爲空,比如是一個你規定了不想要的數
②你不可能預測到這個異常的參數怎麼來的,也不好直接把程序退出
③你可能要想了?我自己穿進去的參數我不知道?我會出錯? 但是你要知道的是,你的程序以後也不是給你自己用的,誰知道你的用戶會給你輸個什麼數?
④MyLongException是你調用的人自己定義的異常類,並且返回給你了。
⑤Exception是所有後綴爲Exception的類的父類,由Java的向上轉換的原理可以讓Exception接收所有它的子類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章