系統自動抛出的異常
所有系統定義的編譯和運作異常都可以由系統自動抛出,稱為标準異常
語句抛出的異常
使用者程式自定義的異常和應用程式特定的異常,必須借助于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[]){
thrownew exception();