自定义异常类的简单运用
程序员文章站
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自定义异常类的使用