java中的異常處理

異常
1、Throwable 是Error和Exception父類。
Error錯誤(程序崩潰):
1、虛擬機錯誤(VirtualMachineError)
2、線程死鎖(ThreadDeath)
3、等...
Exception錯誤:
1、編碼、環境、用戶操作輸入出現問題
2、Exception有很多子類分爲兩種RuntimeException(非檢查異常)和檢查異常
一、try-catch(多catch塊)-finally<br>
(1)try塊:負責捕獲異常,一旦try中發現異常,程序的控制權將被移交給catch塊中的異常處理程序。【try語句塊不可以獨立存在,必須與 catch 或者 finally 塊同存】<br>
(2)catch塊:如何處理?比如發出警告:提示、檢查配置、網絡連接,記錄錯誤等。執行完catch塊之後程序跳出catch塊,繼續執行後面的代碼。<br>
·編寫catch塊的注意事項:多個catch塊處理的異常類,要按照先catch子類後catch父類的處理方式,因爲會【就近處理】異常(由上自下)。<br>

(3)finally:最終執行的代碼,用於關閉和釋放資源等

try{

//一些拋出異常的方法

}

catch(Exception e){

//處理該異常的代碼塊

}

try{
System.out.print("請輸入你的年齡");
Scanner input=new Scanner(System.in);
int age=input.nextInt();
System.out.println("十年後你"+(age+10)+"歲");
}
catch(inputmisException e){
System.out.println("你應該輸入整數");
}
System.out.print();


try拋出很多種類的異常

try{

//一些拋出異常的方法

}

catch(Exception e){

//處理該異常的代碼塊

}

catch(Exception2 e){

//

}

Scanner input=new Scanner(System.in);
try{
System.out.print("請輸入第一個數");
int one=input.nextInt();
System.out.print("請輸入第二個數");
int two=input.nextInt();
System.out.println("兩數相除的結果爲"+one/two);
}
catch(inputmisException e){
System.out.println("你應該輸入整數");
}
catch (ArithException e){
System.out.println("除數不能爲0");
}

catch(Exception e){
System.out.println("我是不知名異常");
}
System.out.println("程序結束啦");

try{

//一些拋出異常的方法

}

catch(Exception e){

//處理該異常的代碼塊

}

catch(Exception2 e){

//

}

finally{

//最終要執行的一些代碼

}

定義自己的異常

//異常類

public class CreditCardException extends Exception {

public CreditCardException(String s){
super(s);  //
 調用父類的Exception構造函數
}
public static void check(int i)
throws
CreditCardException{
if(i<0){
throw new CreditCardException("credit card="+i);
}
}
}

//檢驗類

public class CheckCreditCard {


public static void main(String[] args) {
// TODO Auto-generated method stub
try{
CreditCardException.check(-9);
}
catch(CreditCardException e){
e.printStackTrace();
System.out.println("拋出異常");
return;
}
System.out.println("done.");
}
}

異常有兩類——檢驗異常(Exception類的子類)     和   非檢驗異常(RuntimeException 類的子類),

finally 語句一般在catch 塊的結尾執行,try 或 catch 語句中的return 句子不能阻止finally 語句的執行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章