天天看點

Java中關于自定義異常的問題

我們在寫程式的過程中,往往需要自己定義一個異常,比如:在輸入學生成績資訊的時候,往往需要限定一個範圍,因為分數是從0到100的(假設成績滿分是100分),這個時候想讓輸入成績在0到100範圍外程式運作時抛出一個異常,這時該怎麼做?這就需要我們自己定義一個異常了,因為IDEA不知道這是一個異常,下面是具體做法:

首先定義一個異常類fenshuyichang繼承Exception類

package yc;

public class fenshuyichang extends Exception{
    public fenshuyichang(){}//無參構造
    public fenshuyichang(String message){  //有參構造
        super(message);//調用父類的有參構造,super關鍵字必須要在第一行
    }
}

           

然後定義一個teacher類

package yc;
import java.util.Scanner;

public class Teacher {
    public void fenshu (int i) throws fenshuyichang//抛出異常,以後誰調用這個方法,誰來處理此異常{
        if(i<0||i>100){
            throw new fenshuyichang("你輸入的分數有誤,分數應在0到100之間");//抛出異常類的對象
        }
        else{
            System.out.println("分數正常");
        }
    }
}
           

然後寫main方法,輸入分數,并且調用fenshu方法來判斷分數是否正常

package yc;

import java.util.Scanner;

public class shuru {
    public static void main(String[] args) {
        Scanner i=new Scanner(System.in);
        int a=i.nextInt();
        Teacher teacher = new Teacher();
        try {
            teacher.fenshu(a);
        }
        catch (fenshuyichang b){
            b.printStackTrace();
        }
    }
}

           

運作結果:

由于分數在0到100之間,是以分數正常

Java中關于自定義異常的問題

由于分數不在0-100之間,是以Java提示異常

Java中關于自定義異常的問題
Java中關于自定義異常的問題

以上就是自定義異常的内容