package endual;
public class 异常的分类 {
/**
* Throwable异常有两个子类
* 1.Error类--表示的仅仅是靠程序本身是无法恢复的的严重的错误。比如内存不足,或者是jvm的方法调用栈溢出。在
* 大多数的情况下,遇到这样的情况一般是终止程序的。
* 2.Exception类--这个类表示的程序本身的处理的错误。一般的当前程序运行出现这类的错误,应该是可能处理的,
* 并且使程序恢复运行,而不是随意的去终止程序的
*
* Exception类还有两个子类的:运行时异常和受检查异常。
* 运行时异常
* RuntimeException 类及子类都被称为运行期的异常,这种异常特点是java编译器不会检查它,也就说,当程序中可能出现这类异常的
* 时候,即使使用try catch语句捕获它,也没有用throws字句声明抛出它,还是会编译通过的。
*
* 受检查异常
* 除了RuntimeException及其子类以外,其他的Exception以外,其他的Exception类及其子类都属于受检查异常。这些异常都是要
* 通过try catch类捕获它,或者编译器是无法通过的。
*
* 区分运行时异常和受检查异常
*
* 受检查异常表示程序可以处理的异常。如果抛出异常的方法本身不能处理它,那么方法调用者应该去处理它,从而是程序恢复运行,
* 不至于终止程序。
* 运行时异常表示让程序恢复运行的异常,导致这种异常的原因通常是由于执行了错误。一旦出现了错误,建议终止程序,因此java编译器
* 不会检查这种异常。
* 如果程序代码中有错误,就可能导致运行时异常 比如for循环引起的数组越界。一般运行时的异常是可以通过修改代码来消除了的。
* =========================
* 区分运势的异常和错误
* Error类及其子类的表示程序本身无法修复的错误,它和运势异常的相同之处是:java编译器都不会检查他们的,当程序员运行出现
* 他们都会终止他们的。
* 两者的不同之处是Error类是其子类表示的错误通常是由java虚拟机抛出的,在jdk中预定义了一些错误类,比如内存不足。一般不会扩展
* Error类创建用户自己的错误类。
* 而运行时的错误是可以扩展的,用可以根据特定的问题领域来创建相关的的运行异常类
*
*
*
*
*
*/
}