自定义异常类

自定义异常类

除了java提供的异常类以外,可以自定义异常

1:测试类 try catch 接收测试代码 并在catch中提供打印效果

try {
被测试代码
} catch (异常类名 e) {
System.out.println(e.getMessage());
e.printStackTrace(); -------------------------------//核心效果
}System.out.println(被测试的类);

2.自定义的异常类

定义一个extends自Exception || RuntimeException的类
private String message;
…
public String getMessage() {
return message;-----------------供catch输出调用

3.被测试类

主要提供抛出异常
throws
throw

4.toString

最好提供重写的String类中的toString方法

代码示例:

/**
 * 测试自定义异常
 */
public class AgeExceptionTest extends Exception {
    public static void main(String[] args) {
        //测试类
        Person person = new Person();
        person.setName("张三");
        try {
            // 设置年龄
            //person.setAge(18);
            person.setAge(158);
        } catch (AgeException e) { // 获取异常
            System.out.println(e.getMessage()); // 通过变量调用 getMessage获取信息
            e.printStackTrace(); // 调用printStackTrace方法出现类似于系统异常的打印效果
        }
        System.out.println(person);
    }
}

/**
 * 定义一个年龄范围的异常类
 */
class AgeException extends Exception {
    // 定义变量message
    private String message;
    // 带参构造器

    public AgeException(String message) {
        this.message = message;
    }

    // 提供一个返回信息方法

    @Override
    public String getMessage() {
        return message;
    }
}

/**
 * 创建一个person类
 */
class Person {
    private String name;
    private int age;

    //构造器
    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // setter getter

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) throws AgeException {
        if (age > 0 && age < 110) { // 正常年龄
            this.age = age;
        }else{ // 抛出一个 代参的 自定义代参实例
            throw new AgeException(age + "年龄异常");
        }
    }

    // toString

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

正常示例:
在这里插入图片描述
异常示例:
自定义异常类_第1张图片

你可能感兴趣的:(java,-,异常机制)