在 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。