一、示例一java
// try-catch處理異常ide
public class Error { public static void main(String[] args) { int num1=34,num2=0; //使用try包裹住會產生異常的代碼段 try{ System.out.println(num1/num2); } //使用catch去處理對應的異常 catch(ArithmeticException error){ //處理方法 System.err.println("運算錯誤,除數不能爲0!"); } System.out.println("程序運行結束!"); } }
結果驗證:測試
運算錯誤,除數不能爲0!this
程序運行結束!spa
二、示例二orm
import java.util.InputMismatchException; import java.util.Scanner; public class Error { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("請輸入第一個數字:"); //使用try包裹住會產生異常的代碼段 try{ int num1=input.nextInt(); System.out.println("請輸入第二個數字:"); int num2=input.nextInt(); System.out.println(num1/num2); } //使用catch去處理對應的異常 catch(ArithmeticException error1){ //處理方法 System.err.println("運算錯誤,除數不能爲0!"); }catch(InputMismatchException error2){ System.err.println("請輸入正確的數字!"); } System.out.println("程序運行結束!"); } }
結果驗證:繼承
結果一:字符串
請輸入第一個數字:get
123input
請輸入第二個數字:
123
1
程序運行結束!
結果二:
請輸入第一個數字:
123
請輸入第二個數字:
b
請輸入正確的數字!
程序運行結束!
結果三:
請輸入第一個數字:
123
請輸入第二個數字:
0
運算錯誤,除數不能爲0!
程序運行結束!
三、示例三
// 用戶輸入字符串轉整型
3.1
public class Error { String str; public Error(String str) { this.str = str; } public String Transform(){ try{ int num = Integer.parseInt(str); }catch(NumberFormatException num){ System.out.println("字符串轉整型,請輸入正確的數字:"); }catch(Exception e){ } return str; } }
// 編寫測試類,調用數據類型轉換方法,分別傳遞參數「Good!」、20
public class ErrorDemo { public static void main(String[] args) { Error er = new Error("Good!"); er.Transform(); System.out.println(er.str); } }
字符串轉整型,請輸入正確的數字:
Good!
3.2
public class Error { int num = 0; public Error() { } public Error(int num) { this.num = num; } public int TransformtoInt(String str){ try{ int num1 = Integer.parseInt(str); }catch(NumberFormatException num){ System.err.println("字符串轉整型,請輸入正確的數字:"); }catch(Exception error){ error.printStackTrace(); } return num; } }
import java.util.Scanner; public class ErrorDemo { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("請輸入一個數字:"); String str = input.next(); Error toInt = new Error(); toInt.TransformtoInt(str); System.out.println(str); } }
驗證:
請輸入一個數字:
123
123
請輸入一個數字:
abc
字符串轉整型,請輸入正確的數字:
abc
四、示例四
//throws、throw拋出異常
public class Error { String sex ; public Error() { } public String getSex() { return sex; } public void setSex(String sex) throws Exception { if(sex.equals("男")|sex.equals("女")){ this.sex = sex; }else{ throw new Exception("性別必須爲男或者女!"); } } }
public class ErrorDemo { public static void main(String[] args) { Error er = new Error(); try{ er.setSex("熊"); }catch(Exception error){ error.printStackTrace(); } System.out.println("程序結束"); } }
java.lang.Exception: 性別必須爲男或者女!
at Error.setSex(Error.java:22)
at ErrorDemo.main(ErrorDemo.java:9)
程序結束
五、
自定義異常
// 建立Excption子類繼承Excption父類
//建立類 public class Error { String sex ; public Error() { } public String getSex() { return sex; } public void setSex(String sex) throws Exception { if(sex.equals("男")|sex.equals("女")){ this.sex = sex; }else{ throw new ExceptionDemo("性別必須爲男或者女!"); } } }
//建立ExceptionDemo子類 public class ExceptionDemo extends Exception { public ExceptionDemo() { super(); } public ExceptionDemo(String message) { super(message); } }
//建立測試類 import java.util.Scanner; public class ErrorDemo { public static void main(String[] args) { Error er = new Error(); try{ Scanner next = new Scanner(System.in); System.out.println("請輸入性別:"); er.setSex(next.next()); }catch(Exception error){ error.printStackTrace(); } System.out.println("程序結束!"); } }
結果驗證:
請輸入性別:
男
程序結束!
請輸入性別:
nan
ExceptionDemo: 性別必須爲男或者女!
at Error.setSex(Error.java:23)
at ErrorDemo.main(ErrorDemo.java:10)
程序結束!