Java中的异常Exception和错误Error
异常机制其实是指的是程序出现问题之后,程序的一个处理流程和方案。
程序的错误在java中主要分为两大类,异常Exception和错误Error。它们都有一个共同的祖先Throwable(可抛出)。
java中不管是Exception还是Erro都继承了类Throwable。
错误Error
由于Error本身是程序无法处理的错误,如果出现了Error则意味着程序中出现了较为严重的问题。大多数情况下不是程序员编写程序的和操作问题,而是JVM(java虚拟机)的问题。而这些错误一般虚拟机的解决流程是:java虚拟机会选择线程终止。
常见的Error | 中文解释 |
---|---|
VritualMachineError | 虚拟机错误 |
OutOfMemoryError | 内存溢出错误 |
ThreadDeath | 线程死锁 |
NoClassDefFoundError | 类定义错误 |
异常Exception
异常则是程序本身可以处理的异常。Exception的子类有很多,但是有一个子类十分重要,也是平时遇到的异常最多的子类,就是RuntimeException,运行时异常。也有人将异常简单的分为运行时异常和非运行时异常两大类。所谓运行时异常一般是指不检查异常,也就是java编译器不会检查它,一般不会提示错误,可以选择捕获处理,也可以不处理。同时这个类型的异常throw的时候,方法也可以不需要throws,这样也会编译通过。
而非运行时异常则是指RuntimeException以外的异常,这种类型的异常一般为必须处理的异常,因为这种类型的异常一旦不处理,程序一般来说是无法编译通过的。
常见的异常:
1.RuntimeException子类
异常名称 | 异常名称 |
---|---|
ArrayIndexOutOfBoundsException | 数组越界异常 |
ArithmeticException | 算数条件异常 |
SecurityException | 安全性异常 |
IllegalArgumentException | 非法参数异常 |
ArrayStoreException | 数组中包含不兼容值异常 |
NullPointerException | 空指针异常 |
2.非运行时异常
IOException | 操作输入流和输出流异常 |
---|---|
EOFException | 文件已结束异常 |
FileNOtFoundException | 文件未找到异常 |