1.Error是程序在运行期间出现的非常严重的错误,程序本身无法解决,只能通过其他程序干预,如程序进入死循环、内存泄露等。Error类对象由JVM产生并抛出。
2.checked exception也成编译时异常,所有继承Exception且非RuntimeException的异常,比如最常见的IO异常与SQL异常,java编译期强制去捕获此类异常,否则编译不通过。这种异常一般在一下几种情况中使用:
1)异常发生并不会导致程序出错,进行处理后可以继续执行后续的操作,如当连接数据库失败后,可以重新连接后进行后续操作。
2)程序依赖于不可靠的外部条件,例如系统IO。
3.RuntimeException,运行时异常。是程序编写者无法简单处理的问题,比如当时除零的异常,是由于操作者传入了0这个错误参数,编程人员无法处理,所以要停下程序让操作者改正才行。因此java编译器不要求必须进行异常捕获处理或者抛出声明,由程序员自行决定。
4.Exception类的异常都是在运行期间发生的。继承中子类不能比父类抛出更多的异常或异常更泛。