try
catch(異常類 異常物件)
finally
允許有三種格式:try…catch…finally;try….catch…;try…finally…
(1)try
try中**受異常監控,其中**發生異常時,會丟擲異常物件。可能丟擲的異常型別有多個。
(2)catch
catch會捕獲try**中發生的異常並在其**塊中做異常處理。要注意的一點是:由於try可能丟擲的異常有多個,允許有多個catch。每個catch的()裡的異常種類是不同的(也可以相同,但那樣寫沒意義),try中丟擲的異常匹配到哪個catch裡的異常種類就執行哪個catch**。
這裡有個問題是:當不同catch中異常種類有繼承關係(異常種類眾多,很可能會發生這種現象)時,try中丟擲的異常按catch寫的順序來匹配,先匹配到的就執行,後面的就算同樣可以符合匹配但不會被匹配到了。也因此,當我們想處理更為具體的異常時,最好把父類異常放在子類下面。
(3)finally
一定會在方法返回前執行的**,不管try中有沒有丟擲異常和catch有沒有執行。只有一種情況finally是不會執行的:當在try或catch中呼叫了system.exit(0)時(有時候就算是寫了但卻有可能不會被執行)。
看下面的**示例,來更好了解下finally
public
class exceptiontest
catch(exception e)
finally
}public
static
void
sop(object obj)
} 執行結果為
try run
catch run
/ by zero
finally run
接下來,我們做下改變:保持其餘**不變,改寫try中**
try
執行結果為
try run
finally run
改寫try
sop("try run");
b=a/c;
return ;
}顯示結果為
tryrun
finally run
再改寫try
sop("try run");
b=a/c;
system.exit(0);
}顯示結果為
tryrun
java基礎之異常總結
getmessage 獲取異常資訊,返回字串。tostring 獲取異常類名和異常資訊,返回字串。printstacktrace 獲取異常類名和異常資訊,以及異常出現在程式中的位 置。返回值void。printstacktrace printstream s 通常用該方法將異常內容儲存在日誌檔案中,...
java基礎之異常
public class demo01 catch exception e finally 注意 try 裡面是要捕捉異常的 塊。catch 裡面是捕捉到異常後的處理 塊。finally 裡面的 不管是否發生異常,都執行。exception 一般指程式中出現的問題,可以直接用try.catch處理。...
JAVA基礎 之 異常追蹤棧
異常追蹤棧 stacktrace 1.執行下面的例子,檢視列印的異常資訊。2.會發現 method3的異常 一層一層的拋 最後拋到了main方法 3.很多初學者看到呼啦啦一堆異常資訊後就有牴觸情緒或者覺得很複雜 其實不然,學會觀察異常資訊,會對今後的工作有很大的幫助 不要覺得複雜,複雜是因為你沒有看...