error和runtimeexception及其子類稱為未檢查異常(unchecked exception),其它異常成為受檢查異常(checked exception)。
exception類表示程式可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該盡可能處理異常,使程式恢復執行,而不應該隨意終止異常。
受檢查的異常(ioexception等):這類異常如果沒有try……catch也沒有throws丟擲,編譯是通不過的。這類異常一般是外部錯誤,例如檔案找不到、試圖從檔案尾後讀取資料等,這並不是程式本身的錯誤,而是在應用環境中出現的外部錯誤。
2、當try和catch中有return語句時,finally塊仍然會執行;
3、finally是在return後面的表示式運算後執行的,所以函式返回值是在finally執行前確定的。無論finally中的**怎麼樣,返回的值都不會改變,仍然是之前return語句中儲存的值;
4、finally中最好不要包含return,否則程式會提前退出,返回值不是try或catch中儲存的返回值。
情況2:trycatch(){} finally{} return;
程式執行try塊中return之前(包括return語句中的表示式運算)**;
再執行finally塊,最後執行try中return;
finally塊後面的return語句不再執行。
情況3:try catch() finally{} return;
程式先執行try,如果遇到異常執行catch塊,
有異常:
則執行catch中return之前(包括return語句中的表示式運算)**,再執行finally語句中全部**,
最後執行catch塊中return. finally塊後面的return語句不再執行。
無異常:
執行完try再finally再執行最後的return語句.
情況4:trycatch(){} finally
程式執行try塊中return之前(包括return語句中的表示式運算)**;
再執行finally塊,因為finally塊中有return所以提前退出。
情況5:try{} catch()finally
程式執行catch塊中return之前(包括return語句中的表示式運算)**;
再執行finally塊,因為finally塊中有return所以提前退出。
情況6:trycatch() finally
程式執行try塊中return之前(包括return語句中的表示式運算)**;
有異常:執行catch塊中return之前(包括return語句中的表示式運算)**;
則再執行finally塊,因為finally塊中有return所以提前退出。
無異常:則再執行finally塊,因為finally塊中有return所以提前退出。
public class finallytest
static int test()
finally
}}
Java中Exception和Error的區別
error類和exception類的父類都是throwable類,他們的區別是 error類一般是指與虛擬機器相關的問題,如系統崩潰,虛擬機器錯誤,記憶體空間不足,方法呼叫棧溢等。對於這類錯誤的導致的應用程式中斷,僅靠程式本身無法恢復和和預防,遇到這樣的錯誤,建議讓程式終止。exception類表示...
Error和Exception的區別
首先,error類和exception類都是繼承throwable類 error 錯誤 是系統中的錯誤,程式設計師是不能改變的和處理的,是在程式編譯時出現的錯誤,只能通過修改程式才能修正。一般是指與虛擬機器相關的問題,如系統崩潰,虛擬機器錯誤,記憶體空間不足,方法呼叫棧溢等。對於這類錯誤的導致的應用...
error和exception的區別?
error一般指虛擬機器錯誤,系統崩潰,記憶體溢位等,這種錯誤靠程式本身無法預防和恢復。exception是指程式可以處理的異常,可以捕獲且可能恢復。遇到這類異常,應該盡可能處理異常,使程式恢復執行,而不應該隨意終止異常。主要有 runtimeexception執行時異常 nullpointerex...