04.17 如何理解Java中的異常機制

Java中的異常機制如何理解?代碼的世界和現實世界一樣,不會一帆風順,或者說不會像我們想象中的那麼順利。寫代碼的是人,人的思維存在侷限性,這種侷限性,體現在代碼中,就是漏洞。如果一段程序在生產環境中崩潰,勢必讓人十分惱火。這種令人撓頭的情況就是異常的一種。

關於Java的異常機制有這樣的定義:異常指的是,那些在程序運行過程中,中斷正常的指令流程的事件。實際上,異常還會在以下場景中發生:

用戶輸入錯誤,如:輸入不符合程序預期;

設備錯誤,如:網線斷開連接;

物理限制,如:內存不足;

而我們並不希望程序因為上述情況掛掉,而是希望程序能夠在遇到異常時,巧妙地處理之後,繼續運行下去。

所幸,Java 提供了一套機制,用於在程序程序出錯(出現異常)時,進行:

如何理解Java中的異常機制

報告錯誤、保存工作結果;

讓用戶以更完善的方式退出程序;

亦即:異常處理機制。顧名思義,該機制用於對程序運行中不正常的情況進行處理。

簡單來說,Java 中的異常處理是:當異常發生時,運行時系統逆著方法的調用棧(call stack)去尋找能夠處理這種異常的東西。

以一個把字符串轉換成整數的方法為例:

如何理解Java中的異常機制

在上述代碼中,當 strToFormat 不能轉化成一個整形數時,就轉化成一個默認的值。NumberFormatException 發生時,方法立即終止。尚學堂•百戰程序員陳老師指出控制權被交由 catch 代碼塊,也就是異常處理器(exception hanlder)。代碼雖然簡單,卻包含了 Java 異常處理的一般步驟。


分享到:


相關文章: