欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

自定义异常类的简单运用

程序员文章站 2022-03-15 11:43:05
...

自定义异常类简答介绍:
1、为什么需要自定义异常类
  Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是没有定义好的,此时我们根据自己业务的异常情况来定义异常类。

一些异常都是 Java 内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题,这时就需要我们自定义异常。

2、什么是自定义异常类
  在开发中根据自己业务的异常情况来定义异常类。

3、异常类如何定义
  (1)自定义一个编译器异常:自定义类 并继承 java.lang.Exception

(2)自定义一个运行时期的异常类:自定义类,并继承于 java.lang.RuntimeException。

建议:保留两种构造器的形式

①无参构造

②带给父类的message属性赋值的构造器
注意:

(1)自定义异常类一般都是以Exception结尾,说明该类是一个异常类

(2)自定义异常类,必须的继承Exception或者RuntimeException

继承Exception:那么自定义的异常类就是一个编译期异常,如果方法内部抛出了编译期异常,就必须处理这个异常,要么throws,要么try…catch

继承RuntimeException:那么自定义的异常类就是一个运行期异常,无需处理,交给虚拟机处理(中断处理)
 
示例代码:

public class Student {

    private int id;
    private String name;
    private String age;


    /**
     * 构造方法
     *
     * @param id
     * @param name
     * @param age
     */
    public Student(int id, String name, String age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    /**
     * get-set方法
     *
     * @return
     */
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    /**
     * toString
     *
     * @return
     */
    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age='" + age + '\'' +
                '}';
    }
/**
 * 自定义异常类
 */
public class StudentExcePtion extends Exception{
    public StudentExcePtion(String messagee) {
        super(messagee);
    }

}

public interface StudentManager {
    public void add(Student stu)throws StudentExcePtion;
}

public class Test implements StudentManager{

    static int total = 2;  //总人数
    static int count = 0; //当前人数
    Student[] st = new Student[total];
    @Override
    public void add(Student stu) throws StudentExcePtion {

        if(count<total){
            st[count] = stu;
            count++;
        }else {
            throw new StudentExcePtion("越界了");
        }
    }

    public static void main(String[] args) throws StudentExcePtion {
        Test sm = new Test();

        Student s1 = new Student(01, "tom1", "21");
        Student s2 = new Student(02, "tom2", "22");
        Student s3 = new Student(03, "tom3", "23");

        sm.add(s1);
        sm.add(s2);
        sm.add(s3);
    }
}

相关标签: java基础