2009-11-18 56 views
1

當一個方法無法處理的異常時 - 程序是否終止並顯示錯誤號?錯誤編號和有關錯誤的信息來自哪裏?程序員在編碼時應該知道可能會發生什麼樣的異常。如果是的話,他爲什麼不確保異常不會發生。關於java中的異常的初學者問題

+0

「爲什麼他不確保異常不會發生」說起來容易做起來難。 – Dave 2009-11-18 19:54:27

回答

2

如果您使用的是Java API,則會記錄每個方法拋出的異常。

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

檢查lesson on Exceptions from The Java Tutorial。你可以在這裏學到更多的閱讀,而不是閱讀我在這裏的答案:)

0

Java異常冒泡到有人捕捉到它們或者程序退出的地步。 在現實世界中,當使用許多框架時,異常不會冒泡到頂端。它們被捕獲並報告(在控制檯上打印)。捕捉異常由try { } catch(..) { }塊完成。

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

1

在Java中2種主要類型的異常:

- checked 
- unchecked 

unchecked異常被進一步分解成RuntimeException的和錯誤。

RuntimeExceptions是程序員錯誤(ArrayIndexOutOfBoundsException),錯誤是VM中出現問題(OutOfMemoryError)。

你不應該捕獲RuntimeExceptions - 你應該修復你的代碼,所以它不會拋出異常。

您不應該捕獲錯誤,因爲虛擬機很可能處於無法做任何事情恢復的狀態。

如果你的main沒有捕獲一個未經檢查的異常,它會崩潰。

+0

非常感謝您的信息 – fesam 2009-11-18 20:08:53

0

應該在編碼 程序員有可能發生什麼樣的異常 的

是一個想法,但沒有一個人是完美的。

爲什麼一點兒也不,他保證例外 不會發生

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