如何自定义异常,两种方式有什么区别?
时间: 2024-01-04 16:01:47 浏览: 85
在Java中,我们可以通过自定义异常来处理一些特定的异常情况,以便更好地捕获和处理异常。Java中自定义异常的方式有两种:
1. 继承Exception类或其子类,这种方式是用于处理程序中的可查异常。
2. 继承RuntimeException类或其子类,这种方式是用于处理程序中的运行时异常。
这两种方式的区别在于:
- 第一种方式继承的是Exception类或其子类,表示这是一个可查异常,必须在代码中显式地处理或者在方法上抛出异常。如果不处理或抛出异常,程序就会编译不通过。
- 第二种方式继承的是RuntimeException类或其子类,表示这是一个运行时异常,不要求在代码中显式地处理或者在方法上抛出异常。程序在运行过程中如果出现了这种异常,会自动抛出并且终止程序的执行。
例如,我们可以通过以下代码来自定义一个可查异常:
```java
public class MyException extends Exception {
public MyException(String message) {
super(message);
}
}
```
或者通过以下代码来自定义一个运行时异常:
```java
public class MyRuntimeException extends RuntimeException {
public MyRuntimeException(String message) {
super(message);
}
}
```
需要注意的是,自定义异常类一般都需要提供一个有参的构造方法,用于在抛出异常时传递异常信息。
阅读全文