異常
檢查時異常:(編譯型異常)
執行時異常:陣列下標越界,空指標異常,丟失資源。。。
錯誤Error: Java虛擬機器生成丟擲,當JVM不再有繼續執行操作所需的記憶體資源時候會丟擲OutOfMemoryError
try-catch-finally
try{// 監控區域
...
}catch(Error e){
}catch(Exception e){n
}catch(Throwable t){
}
finally{// 善後工作
...
}
捕獲多個異常從小到大捕獲
ctrl+alt+T
throw
在程式中丟擲異常,用在方法實現中。throw關鍵字用來在程式中明確的丟擲異常。
new Test.test(1,0);
public void test(int a,int b){
if(b==0){
throw new ArithmeticException();//主動丟擲異常,一般在方法中使用
}
}
throws
宣告在該方法內丟擲了異常,用在方法宣告中。throws語句用來表明方法不能處理的異常,將異常拋到上級。
new Test.test(1,0);
public void test(int a,int b) throws ArithmeticException{
if(b==0){
throw new ArithmeticException();//主動丟擲異常,一般在方法中使用
}
}
- 可以理解為throw是主動(在方法內容裡我們是主動捕獲並throw的),而throws是被動(在方法上是沒有捕獲異常進行處理,直接throws的)
- throw丟擲一個異常物件,而且只能是一個,throws後面跟異常類,可以有多個。
JVM錯誤
stackoverflow
outofmemory(面試必問)
其他
1.字串
2.97+3=100
3.3+a