📅  最后修改于: 2023-12-03 15:16:37.468000             🧑  作者: Mango
在Java中,异常是一种处理错误或异常情况的机制。而自定义异常则是指开发者自己定义的异常类型,用于处理特定的异常情况。
要创建自定义异常,我们需要继承Java提供的Exception
或者RuntimeException
类。Exception
类是所有可检查的异常类的父类,而RuntimeException
类则是所有运行时异常类的父类。
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
在上面的代码中,我们通过继承Exception
类创建了一个MyException
类。这个类只有一个构造方法,接受一个字符串参数message
作为异常信息,并将这个字符串传递给父类的构造方法。
类似的,如果我们想创建一个运行时异常类,可以继承RuntimeException
类:
public class MyRuntimeException extends RuntimeException {
public MyRuntimeException(String message) {
super(message);
}
}
一旦我们创建了自定义异常类,就可以在程序中使用它了。要抛出自定义异常,可以像抛出标准异常一样使用throw
关键字:
public void myMethod() throws MyException {
// do something
throw new MyException("Something went wrong");
}
在上面的代码中,我们定义了一个方法myMethod
,并在方法中抛出了一个自定义异常MyException
。注意,在方法签名中我们使用了throws MyException
表示这个方法可能会抛出这个异常。
当我们在程序中抛出自定义异常后,也需要在合适的地方捕捉这个异常。捕捉自定义异常的方式与捕捉标准异常相同:
try {
myObject.myMethod();
} catch (MyException e) {
System.err.println("Something went wrong: " + e.getMessage());
}
上述代码会尝试调用myMethod
方法,如果该方法抛出了MyException
异常,就会被catch
块捕捉到,并输出异常信息。
自定义异常是Java中处理特定异常情况的重要机制之一。通过继承Exception
或者RuntimeException
类,可以创建自己的异常类并在程序中使用。要抛出和捕捉自定义异常,可以使用throw
和catch
关键字。