7、Exception和Error有什么区别?

exception 和 error都是继承了 throwable类,在java中只有 throwable类型的实例才可以被抛出  throw活着 捕获  catch,它是异常处理机制的基本组成类型,

 exception和error 体现了java平台设计者对不同异常情况的分类, exceptin是程序正常运行中,可以预料的意外情况,  可能并且应该被捕获,进行相应处理的。

 

error是指在正常情况下,不大可能出现的情况,绝大部分的 error都会导致程序 比如jvm自身 ,处于非正常的、 不可恢复状态。 既然是非正常情况,所以不便于也不需要捕获,常见的比如outofmemerorerror之类, 都是error的子类。

 

exception又分为可检查( checked)异常和不检查( unchecked)异常, 可检测异常在源代码必须显示的进行捕获处理,这是编译器检查的一部分,前面我介绍的不可查的error,是thrwowable不是exception。

不检查异常就是所谓的运行时异常,类似nullpointerexception, arrayindexoutofboundsexction之类,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译器强制要求。

 

你可能感兴趣的:(Java面试题)