问:Exception和Error有什么区别?另外,运行时异常与一般异常有什么区别?
考点分析:
一、理解Throwable、Exception、Error的设计和分类。比如掌握一些应用最为广泛的子类,以及如何自定义异常。面试官有可能进一步追问细节,例如你了解那些Error、Exception。以下是一些经典例子。
二、理解Java语言中操作Throwable的元素和实践。掌握最基本的语法是必须的,如try-catch-finally块,throw,throws关键字等
三、我个人的回答是:
Error指的是在正常情况下,出现的可能性很小的情况,绝大部分的Error都会导致程序处于非正常的状态,不可恢复的状态,既然是非正常的,不便于也不需要捕获,常见的例如OOME,都是Error的子类。
Exception有分可检查异常与不检查异常,可检查异常必须在源码里进行显式地捕获处理;不检查异常就是所谓的运行时异常,RuntimeException,类似NullPointerException等,可以在编写代码时规避,具体根据需要是否进行捕获操作。
四、知识拓展,如何正确使用try-catch代码,避免玄学BUG呢?关注我的公众号获取,免费的。