Java的異常捕捉機制(2)
阿新 • • 發佈:2018-12-10
1)編寫一個Java程式,接收使用者通過鍵盤不斷輸入表示某門課程的成績的字串(按回車為一個字串結束),當輸入非法數字(輸入值小於0或大於100)時提示成績輸入有誤,當輸入為非數字的字串時提示輸入格式不合法。 程式原始碼: 1.事先需要自定義異常類如下:
public class MyException extends Exception{ //構建自定義異常,繼承Exception類
public MyException(String Error) { //構造方法
super(Error); //繼承父類的構造方法
}
}
2.程式程式碼
import java.util.Scanner; public class class01 { public static int yichang (int a) throws MyException{//定義方法丟擲異常 int c; if(a>100||a<0){//判斷a的值是否比0小比100大 throw new MyException("你輸入的成績有誤!");//錯誤資訊 } else{ c=a; } return c; } public static void main(String[]args){ while(true){//迴圈 try{ System.out.println("請輸入成績:"); Scanner sc=new Scanner(System.in); int a=sc.nextInt(); int c=yichang(a);//呼叫函式 System.out.println("你輸入的成績是:"+c); } catch(MyException e){ System.out.println(e);//輸出自定義異常資訊 } catch(Exception e){ System.out.println("你輸入的成績格式不合法!");//輸出異常資訊,(因為定義的是int型變數所以非數字字元會自動丟擲異常資訊) } } } }
輸出結果: 2) 編寫一個 java程式,通過賦初值或接收使用者通過鍵盤輸入的方式為表示使用者名稱和密碼的兩個String類物件賦值,然後進行判斷,如果使用者名稱或密碼為null,丟擲自定義異常並結束程式;如果輸入密碼長度小於6個字元,丟擲自定義異常並結束程式;如果使用者名稱和密碼不等於事先指定的字串,丟擲自定義異常並結束程式;否則輸出提示“用登入成功”。 程式原始碼: 1.第一步也需要自定義異常類如下:
public class MyException extends Exception{ //構建自定義異常,繼承Exception類 public MyException(String Error) { //構造方法 super(Error); //繼承父類的構造方法 } }
2.程式程式碼:
import java.util.Scanner;
public class class02 {
public static String yichang(String a,String b)throws MyException{//自定義丟擲異常
if(a.equals("")||b.equals("")){//判斷輸入的使用者名稱和密碼是否為空
throw new MyException("你輸入的使用者名稱或密碼為空!");//錯誤資訊
}
else if(b.length()<6){//判斷密碼字串的長度是否小於6
throw new MyException("你輸入的密碼小於6位!");
}
else if(!a.equals("tian")|!b.equals("123456")){//判斷使用者名稱和密碼是否正確
throw new MyException("你輸入的使用者名稱或密碼不正確!");
}
return (null);
}
public static void main(String[]args){
while(true){
System.out.println("請輸入使用者名稱:");
Scanner sc1=new Scanner(System.in);
String a=sc1.nextLine();
System.out.println("請輸入密碼:");
Scanner sc2=new Scanner(System.in);
String b=sc2.nextLine();
try{
yichang(a,b);//呼叫函式
System.out.println("使用者登入成功!");
}
catch(MyException e){
System.out.println(e);//輸出異常資訊
System.exit(0);//退出程式
}
}
}
}
執行結果如下: