我是Java的新手,我正在尋找異常處理。當我們捉住Java異常,我們聲明和使用Exception
類的Object
沒有初始化它,即Java異常類
catch(NullPointerException e)
e.printStackTrace();
所以我的問題是,我們如何能夠使用對象引用Ë沒有實例呢?
我是Java的新手,我正在尋找異常處理。當我們捉住Java異常,我們聲明和使用Exception
類的Object
沒有初始化它,即Java異常類
catch(NullPointerException e)
e.printStackTrace();
所以我的問題是,我們如何能夠使用對象引用Ë沒有實例呢?
他們很好實例:
void example() {
throw new UnsupportedOperationException("message");
} // ^^^
void demonstration() {
try {
example();
} catch (UnsupportedOperationException e) {
e.printStackTrace();
}
}
這個非常簡單的例子應該是自我解釋...
當(throw
)語句發生錯誤時(通常)實例化異常。例如,
throw new NullPointerException();
(請注意,這只是一個例子。NPE之間通常不明確自己的代碼拋出。)
的catch
條款類似於聲明參數的函數。考慮函數
void func(String s) {
// ...
}
func
不實例化s
。 String
在其他地方創建並傳遞給函數。以同樣的方式,我們與throw
創建一個例外,它是「通過」catch
子類有點像一個參數。
是的,catch(NullPointerException e)
參考e
是使用throw new NullPointerException("some error message");
例外被實例化。它發生在類內部,可能會拋出異常。對於您的信息,關鍵字throw負責創建並拋出異常。你的catch方法會捕獲異常。你也可以使用這個關鍵字來實現你自己的例外。
提示:您正在捕獲的異常對象*在引發異常的塊中實例化。 – Santa
這同樣適用於方法參數。它們在別處構建併發送到該方法。與例外無異,只是一種不同的機制。 – EJP