什么是检查异常和非检查异常,分别列举,如何去自定义异常?
时间: 2024-12-11 17:41:11 浏览: 8
检查异常(Checked Exception)是指那些编译器要求开发者显式处理的异常,通常与程序的正常流程有关,比如文件I/O、网络请求等。如果一个方法可能会抛出检查异常,那么该方法声明处需要捕获并处理这个异常,或者将其向上抛给调用者处理。常见的检查异常包括IOException、SQLException等。
非检查异常(Unchecked Exception),也称为运行时异常,是由程序逻辑错误引起的,不需要提前声明。例如NullPointerException、ArrayIndexOutOfBoundsException等。对于非检查异常,编译器不会强制程序员处理它们,但如果在运行时发生,程序会立即终止。
自定义异常是在Java中创建新的异常类型的机制,通常通过继承Exception或其子类如RuntimeException来实现。步骤如下:
1. 创建一个新的类,例如`MyCustomException`,它需要继承自Exception或其子类。
```java
public class MyCustomException extends Exception {
// 可以添加构造函数,传递额外的信息
public MyCustomException(String message) {
super(message);
}
}
```
2. 如果想包含详细的错误信息,可以重写toString()方法。
3. 使用自定义异常时,在可能出现异常的地方抛出,并捕获处理:
```java
try {
// 代码可能会抛出自定义异常
} catch (MyCustomException e) {
System.out.println("发生了自定义异常:" + e.getMessage());
}
```
阅读全文