在 Java 中,异常(Exception)主要用于处理程序运行过程中出现的错误或特殊情况。Java 的异常体系是基于类的继承结构设计的,核心根类是 Throwable。
Throwable
├── Error(错误)
└── Exception(异常)
├── RuntimeException(运行时异常 / 非受检异常)
└── 其他 Exception(受检异常 / Checked Exception)
特点:
常见类型:
StackOverflowError:栈溢出OutOfMemoryError:内存不足VirtualMachineError:虚拟机错误✅ 实际开发中通常不捕获 Error
特点:
常见类型:
IOExceptionSQLExceptionFileNotFoundExceptionClassNotFoundExceptionInterruptedExceptiontry {
FileInputStream fis = new FileInputStream("a.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
特点:
常见类型(都是 RuntimeException 的子类):
NullPointerExceptionArrayIndexOutOfBoundsExceptionClassCastExceptionIllegalArgumentExceptionArithmeticExceptionint a = 1 / 0; // ArithmeticException
| 类型 | 是否必须处理 | 典型代表 |
|---|---|---|
| Error | 否 | OutOfMemoryError |
| Checked Exception | 是 | IOException |
| RuntimeException | 否 | NullPointerException |
// 受检异常
public class MyException extends Exception {
public MyException(String msg) {
super(msg);
}
}
// 非受检异常
public class MyRuntimeException extends RuntimeException {
public MyRuntimeException(String msg) {
super(msg);
}
}
Error 是天灾,Exception 是人祸
Checked 要处理,Runtime 靠逻辑
如果你需要,我也可以帮你画 异常体系图 或结合 面试问题 来讲。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。