簡體   English   中英

關於Java異常的初學者問題

[英]beginner question about exception in java

當發生方法無法處理的異常時,程序是否終止並顯示錯誤號? 錯誤號和錯誤信息從何而來? 程序員在編碼時是否應該知道可能發生哪種異常。 如果是這樣,他為什么不確保不會發生異常。

如果使用Java API,則會記錄每個方法引發的異常。

程序終止時,它會顯示導致該特定問題的方法調用的堆棧跟蹤。

查看Java教程中有關異常的課程 您可以在這里了解更多信息,而不是在這里閱讀我的答案:)

Java中有兩種主要的異常類型:

- checked
- unchecked

未檢查的異常進一步細分為RuntimeException和Error。

RuntimeExceptions是程序員錯誤(ArrayIndexOutOfBoundsException),而Errors是VM中的問題(OutOfMemoryError)。

您不應該捕獲RuntimeExceptions-您應該修復代碼,以便它不會引發異常。

您不應捕獲錯誤,因為VM可能處於無法采取任何措施從錯誤中恢復的狀態。

如果您的主體沒有捕獲到未經檢查的異常,它將崩潰。

Java異常會一直上升到有人抓住它們或程序退出的地步。 在現實世界中,當使用許多框架時,異常永遠不會冒出來。 他們被捕獲並報告(打印在控制台上)。 捕獲異常是通過try { } catch(..) { }塊完成的。

異常有兩種類型-選中和未選中。 必須在方法簽名中聲明已檢查的異常(與未檢查的異常不同)

程序員在編碼時是否應該知道可能發生哪種異常

是的,但沒有人是完美的。

他為什么不確保不會發生異常

在特殊情況下,您想例外。 您不想忽略該異常。 例如,假設您的程序創建了一個文件來保存用戶設置。 如果由於某種原因文件創建失敗(您的程序無法控制,這是操作系統的工作),則您不想繼續進行,就像什么都沒發生一樣。 您希望有一個例外,以便任何人或任何調用該函數的函數都知道此問題,並且可以執行某些操作,例如通知用戶。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM