3 自定义异常-1
时间: 2023-12-02 22:04:10 浏览: 76
Java 中的异常机制不仅提供了许多现成的异常类供我们使用,还允许我们自定义异常类来满足特定的需求。自定义异常类需要继承自 `Exception` 或其子类,并实现相应的构造方法和其他方法。
下面是一个自定义异常类的示例:
```
public class MyException extends Exception {
public MyException() {
super();
}
public MyException(String message) {
super(message);
}
public MyException(String message, Throwable cause) {
super(message, cause);
}
public MyException(Throwable cause) {
super(cause);
}
}
```
在上面的示例中,我们定义了一个名为 `MyException` 的自定义异常类,该类继承自 `Exception` 类。我们实现了四个构造方法,分别对应不同的异常情况。其中,`String message` 参数表示异常的详细信息,`Throwable cause` 参数表示引发异常的原因。
在实际开发中,我们可以根据具体的需求来设计自己的异常类。例如,如果我们在编写一个文件读取工具类时,需要在文件不存在的情况下抛出一个自定义异常,那么可以定义一个名为 `FileNotExistException` 的异常类,并在其中实现相应的构造方法和其他方法。
下面是一个 `FileNotExistException` 自定义异常类的示例:
```
public class FileNotExistException extends Exception {
public FileNotExistException() {
super("文件不存在!");
}
public FileNotExistException(String message) {
super(message);
}
public FileNotExistException(String fileName, Throwable cause) {
super("文件 " + fileName + " 不存在!", cause);
}
}
```
在上面的示例中,我们定义了一个名为 `FileNotExistException` 的自定义异常类,该类继承自 `Exception` 类。我们实现了三个构造方法,分别对应不同的异常情况。其中,第一个构造方法表示文件不存在的默认异常信息,第二个构造方法允许自定义异常信息,第三个构造方法在文件不存在的基础上添加了引起异常的原因。
使用自定义异常类时,我们可以在需要抛出异常的地方使用 `throw` 关键字抛出自定义异常的实例,例如:
```
public void readFile(String fileName) throws FileNotExistException {
File file = new File(fileName);
if (!file.exists()) {
throw new FileNotExistException(fileName);
}
// 读取文件内容
}
```
在上面的示例中,我们在文件不存在的情况下抛出了一个 `FileNotExistException` 异常的实例,由调用该方法的上层代码进行处理。
阅读全文