自定义异常

编写自己的异常类时需要记住下面的几点:

  • 所有异常都必须是 Throwable 的子类。
  • 如果希望写一个检查性异常类,则需要继承 Exception 类。
  • 如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
// 下面的代码是自定义一个异常类继承自Exception
public class DivideByMinusException extends Exception{
    public DivideByMinusException (){
        super();          // 调用Exception无参的构造方法
    }
    public DivideByMinusException (String message){
        super(message); // 调用Exception有参的构造方法
    }
}

throw Exception  异常对象

在下面的方法中判断被除数是否为负数,如果是负数,就使用throw关键字在方法中向调用者抛出自定义的异常对象

public class Example26 {
    public static void main(String[] args) {
            int result = divide(4, -2);    // 调用divide()方法,传入一个负数作为被除数
            System.out.println(result);
    }
    //下面的方法实现了两个整数相除, 
    public static int divide(int x, int y) {
        if(y<0){ 
            throw new DivideByMinusException("被除数是负数");// 使用throw关键字声明异常对象
        }
        int result = x / y;   // 定义一个变量result记录两个数相除的结果
        return result;         // 将结果返回
    }
}

进行处理。

public class Example27 {
    public static void main(String[] args) {
              // 下面的代码定义了一个try…catch语句用于捕获异常
        try {
            int result = divide(4, -2);  // 调用divide()方法,传入一个负数作为被除数
            System.out.println(result);
        } catch (DivideByMinusException e) {     // 对捕获到的异常进行处理
            System.out.println(e.getMessage()); // 打印捕获的异常信息
        }
    }
    // 下面的方法实现了两个整数相除,并使用throws关键字声明抛出自定义异常
    public static int divide(int x, int y) throws DivideByMinusException {
        if (y < 0) {
            throw new DivideByMinusException("被除数是负数");// 使用throw关键字声明异常对象
        }
        int result = x / y;     // 定义一个变量result记录两个数相除的结果
        return result;           // 将结果返回
    }
}

运行结果:

原文地址:https://www.cnblogs.com/thiaoqueen/p/8482350.html