Java關鍵字throw和throws
係統自動拋出的異常
所有係統定義的編譯和運行異常都可以由係統自動拋出,稱為標準異常
語句拋出的異常
用戶程序自定義的異常和應用程序特定的異常,必須借助於throws 和throw 語句來定義拋出異常。
throws
關鍵字通常被應用在聲明方法時,用來指定可能拋出的異常。多個異常可以使用逗號隔開。當在主函數中調用該方法時,如果發生異常,就會將異常拋給指定異常對象。
throw
關鍵字通常用在方法體中,並且拋出一個異常對象。程序在執行到throw語句時立即停止,它後麵的語句都不執行。通過throw拋出異常後,如果想在上一級代碼中來捕獲並處理異常,則需要在拋出異常的方法中使用throws關鍵字在方法聲明中指明要跑出的異常;如果要捕捉throw拋出的異常,則必須使用try—catch語句。
區別
throws表示可能會產生異常,說明你有那個可能,傾向。throw則是指拋出的一個具體的異常類型,就是你把那個傾向變成真實的了。
throws通常不用顯示的捕獲異常,可由係統自動將所有捕獲的異常信息拋給上級方法。throw則需要用戶自己捕獲相關的異常,而後在對其進行相關包裝,最後在將包裝後的異常信息拋出。
throws出現在方法函數頭。而throw出現在函數體。
例
// 自定義異常
class MyException extends Exception{
}
class TestThrows{
void method throws MyException{};
public void static main(String args[]){
try{
method();
}catch(MyException e){
System.out.println("MyException異常");
}
}
}
class TestThrow{
public void static mian(String args[]){
try{
thrownew Exception();
}catch(MyException e){
System.out.println("MyException異常");
}
}
}
原帖地址:https://liuhun3083053.iteye.com/blog/1542119
最後更新:2017-04-03 05:40:23