java中Error和Exception用法上有什么區(qū)別
順便提一句, 和Exception 相對應(yīng)的,還有Error,Error(錯誤)表示系統(tǒng)級的錯誤和程序不必處理的異常,是JRE(java運行環(huán)境)的內(nèi)部錯誤或者硬件問題,比如,另外某一處地方的bug引起的內(nèi)存溢出,內(nèi)存資源不足等,OutOfMemoryError,對這類錯誤,程序基本無能為力,比如下例中,catch不被執(zhí)行(其實虛擬機是有能力執(zhí)行的,否則finally為什么被執(zhí)行?但就是這原則,意味著,程序員們不要試圖在catch中做什么,你做了,我也不執(zhí)行,因為是Error,而不是Exception)只能退出。
馬克- to-win:馬克 java社區(qū):防盜版實名手機尾號: 73203。
例:
public class Test {
/* maxMemory將返回java虛擬機所能返回的最大可用內(nèi)存。0.92可以, 0.93就報錯 */
int size_Make_to_win = (int) (Runtime.getRuntime().maxMemory() * 0.93);
public void allo() {
byte[] data1 = new byte[size_Make_to_win];
}
public static void main(String[] args) {
Test t = new Test();
try{
t.allo();
}
catch(Exception e)
{
System.out.println(e+"qqq");
}
finally
{
System.out.println("in finally");
}
}
}
輸出結(jié)果:
in finally
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at Test.allo(Test.java:5)
at Test.main(Test.java:10)