對象導論之異常處理:處理錯誤

異常處理:處理錯誤
  自從編程語言問世以來,錯誤處理就始終是最困難的問題之一。因爲設計一個良好的錯誤處理機制非常困難,所以許多語言直接略去這個問題,將其交給程序庫設計者處理,而這些設計者也只是提出了一些不徹底的方法,這些方法可用於許多很容易就可以繞過此問題的場合,而且其解決方式通常也只是忽略此問題。大多數錯誤處理機制的主要問題在於,它們都依賴於程序員自身的警惕性,這種警惕性來源於一種共同的約定,而不是編程語言所強制的。如果程序員不夠警惕——通常是因爲他們太忙,這些機制就很容易被忽視。
  異常處理將錯誤處理直接置於編程語言中,有時甚至置於操作系統中。異常是一種對象,它從出錯地點被“拋出”,並被專門設計用來處理特定類型錯誤的相應的異常處理器“捕獲”。異常處理器就像是與程序正常秩序路徑並行的、在錯誤發生時執行的另一條路徑。因爲它是另一條完全分離的執行路徑,所以它不會干擾正常的執行代碼。這往往使得代碼編寫變得簡單,因爲不需要被迫定期檢查錯誤。此外,被拋出的異常不像方法返回的錯誤值和方法設置的用來表示錯誤條件的標誌位那樣可以被忽略。異常不能被忽略,所以他保證一定會在某處得到處理。最後需要指出的是:異常提供了一種從錯誤狀況進行可靠恢復的途徑。現在不再是隻能退出程序,你可以經常進行校正,並恢復程序的執行,這些都有助於編寫出更健壯的程序。
  Java的異常處理在衆多的編程語言中格外引人注目,因爲Java一開始就內置了異常處理,而且強制你必須使用它。它是唯一可接受的錯誤報告方式。如果沒有編寫正確的處理異常的代碼,那麼就會得到一條編譯時的出錯消息。這種有保障的一致性有時會使得錯誤處理非常容易。
  值得注意的是,異常處理不是面向對象的特徵——儘管在面嚮對象語言中異常常被表示成爲一個對象。異常處理在面嚮對象語言出現之前就已經存在了。

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