java異常處理
一 異常:
是指程序運行的過程中,發生某些意外的事情,比如10除以0, 文件不存在等。
例如: public class AMAS {
public void test333(){
System.out.println("運行前");
int a=10/0;
System.out.println("運行後");
}
public static void main(String[] args) throws Exception{
AMAS c=new AMAS();
c.test333();
}
}
二 異常的體系
Throwable類有兩個直接子類:Exception類、Error類。
異常分為運行期異常和編譯期異常兩種
try的定義及使用
try塊中任何一條語句發生了異常,下面的代碼將不會被執行,程序將跳轉到異常處理代碼塊中,即catch塊。因此,不要隨意將不相關的代碼放到try塊中,因為隨時可能會中斷執行。
catch的定義及使用
catch語句必須緊跟著try語句之後,稱為捕獲異常,也就是異常處理函數,一個try後面可以寫多個catch,分別捕獲不同類型的異常,要從子類往父類的順序寫,否則有編譯錯誤
finally的定義及使用
finally該內容總是會執行的,只能有一個finally語句
throw
關鍵字throw用於顯式拋出異常 拋除異常後處理 使用try-catch捕獲異常 使用throws聲明異常 語法 throw new 異常類構造方法; 例如:throw new Exception();
throws
用於方法聲明處,指出方法引發的異常。 可以聲明多種異常類型,用逗號分開即可。
層層拋出異常
catch語句中,處理異常後,再次用throw拋出該異常對象 繼續拋出異常的作用:使得調用該方法的方法,能夠再一次捕獲並處理異常。
例如:
public class SDjAVA {
public static void KK(boolean isthrow)throws Exception{
System.out.println("進入kk-----");
try{
if(isthrow){
throw new Exception();
}
}catch(Exception e){
System.out.println("出了異常繼續拋");
throw e;
}
System.out.println("正常運行了");
}
public static void main(String[] args) {
try{
KK(true);
}catch(Exception e){
System.out.println("出錯了");
}
}
}
throw用於方法體中,用來拋出一個實際的異常對象,使用throw後,要麽使用try catch捕獲異常,要麽使用throws聲明異常。
throws用於方法聲明處,用來聲明該方法可能發生的異常類型,可以是多個異常類型,用來強制調用該方法時處理這些異常。
抽象方法也可以使用throws,所以說並不是有throw才有throws。
如果使用throw關鍵字拋異常,一定不要使用Exception,不能很好標記異常類型。
java異常處理