Java 如何抛出自定义的异常?

  • Post category:Java

Java可以抛出自定义的异常,主要是通过继承Exception类或RuntimeException类来创建自定义异常类。下面是创建自定义异常类的完整攻略:

1. 创建异常类

为了抛出自定义的异常,需要先创建一个异常类,可以继承Exception类或RuntimeException类。

public class MyException extends Exception {
    public MyException(String message) {
        super(message);
    }
}

上述代码中,我们创建了一个名为MyException的异常类,继承自Exception类,该异常类有一个带有String参数的构造方法。

2. 抛出自定义异常

在Java中,可以使用throw关键字抛出异常。为了抛出自定义的异常,可以在需要抛出异常的地方,使用new操作符创建自定义异常对象,并使用throw关键字将异常抛出。

public class TestMyException {
    public static void main(String[] args) throws MyException {
        int i = 10;
        if (i == 10) {
            throw new MyException("i cannot be 10.");
        }
    }
}

上述代码中,我们在main方法中使用throw关键字抛出自定义异常对象。当i等于10时,程序会抛出我们自定义的异常对象,即触发了异常。

3. 捕获自定义异常

当抛出自定义异常后,需要在程序中捕获该异常并处理。可以使用try-catch语句来捕获异常。在catch块中可以定义异常处理的代码。

public class TestMyException {
    public static void main(String[] args) {
        int i = 10;
        try {
            if (i == 10) {
                throw new MyException("i cannot be 10.");
            }
        } catch (MyException e) {
            System.out.println(e.getMessage());
        }
    }
}

上述代码中,我们使用try-catch语句来捕获抛出的自定义异常对象。在catch块中,我们使用了getMessage方法来获取自定义异常中的信息并打印输出。

另一个示例:

public class TestMyException1 {
    public static void main(String[] args) throws MyException {
        int age = 10;
        if(age < 18){
            throw new MyException("Age must be greater than or equal to 18.");
        }else{
            System.out.println("You can vote!");
        }
    }
}

上述代码中,我们声明了一个名为age的变量,并将其值设为10。在程序中,如果age小于18,则抛出自定义的异常对象并打印出错误信息;如果age大于或等于18,则可以进行投票。

以上就是Java如何抛出自定义异常的完整攻略,希望能对你有所帮助。