在 Java 中,可以通过创建自定义异常类来表示特定的异常情况。自定义异常类通常是继承自 Exception 类或其子类。
创建自定义异常类可以帮助我们更好地描述和处理特定的异常情况,自定义异常需要继承自 Exception 类或者子类,具体取决于自定义异常的特定需求,并命名为你想要的异常类名。语法如下:
public class 自定义异常名 extends Exception/它的子类 {
//...
}例如,我们创建一个名为 CustomException 的自定义异常类,继承自 Exception 类,代码如下:
public class CustomException extends Exception {
// 构造方法
public CustomException(String message) {
super(message);
}
}在自定义异常类中,添加一个构造方法,以便在抛出异常时能够传递有关异常的相关信息。
通常,我们可以使用 super() 调用父类的构造方法,以便在创建自定义异常对象时初始化父类的属性。例如:
public class CustomException extends Exception {
public CustomException() {
super();
}
public CustomException(String message) {
super(message);
}
public CustomException(String message, Throwable cause) {
super(message, cause);
}
public CustomException(Throwable cause) {
super(cause);
}
}上述代码中,重写了父类的四个构造方法,分别用来接收一个异常原因字符串,或者一个 Throwable 对象。
在自定义异常类中,可以添加自定义的字段和方法,以满足特定的异常需求。这些字段和方法可以提供更多的异常信息和功能。
例如,我们可以添加一个表示错误代码的字段和对应的访问方法。
public class CustomException extends Exception {
// 错误代码
private int errorCode;
// 构造方法多接收一个错误代码
public CustomException(String message, int errorCode) {
super(message);
this.errorCode = errorCode;
}
// 获取错误代码
public int getErrorCode() {
return errorCode;
}
}上述代码中,CustomException 类添加了一个 errorCode 字段和对应的访问方法。
上面介绍了怎样创建自定义的异常,下面将介绍怎样在代码中使用自定义异常类。例如:
public class Demo {
public static void main(String[] args) throws CustomException {
if(args.length == 0) {
// 抛出了自定义的异常
throw new CustomException("运行失败,参数为空", 500);
}
for(String arg : args) {
System.out.println(arg);
}
}
}上述代码中, main() 方法声明可能抛出 CustomException 异常,并在参数为空的情况下抛出自定义异常 CustomException。