一个面试必问的知识点:java中的异常( 二 )

(1)Error(错误):一般表示代码运行时JVM出现问题 。 比如NoClassDefFoundError等 。 比如说当jvm耗完可用内存时 , 将出现OutOfMemoryError 。 此类错误发生时 , JVM将终止线程 。

(2)运行异常将由系统自动抛出 , 应用本身可以选择处理或者忽略该异常 。

(3)可查异常必须进行捕获或者抛出该方法之外交给上层处理 。 要么使用try-catch捕获 , 要么throws该异常 。

3、面试题

(1)检查型异常和非检查型异常有什么区别

检查型异常和非检查型异常的主要区别在于其处理方式 。 检查型异常都需要使用trycatch 和finally 关键字在编译器进行处理 , 否则会出现编译器报错 。 对于非检查型异常则不需要这样做 。 Java中所有继承  Exception 的类的异常都是检查型异常 , 所有继承RuntimeException 的异常都被称为非检查型异常 。
(2)error和exception有什么区别

这里主要是对概念的理解 。 error 表示恢复不是不可能但很困难的情况下的一种严重问题 。 exception 表示一种设计或实现问题 。 也就是说 , 它表示如果程序运行正常 , 从不会发生的情况 。

推荐阅读