当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选面试题-Error和Exception的区别,CheckedException,RuntimeException的区别

金三银四精选面试题-Error和Exception的区别,CheckedException,RuntimeException的区别

来源:图灵教育
时间:2023-11-15 09:26:27
 

Error和Exception的区别,CheckedException,RuntimeException的区别

先搞清楚它们三者的关系。Error与Exception都继承自Throwable,而RuntimeException则继承自Exception。在Java中只有Throwable类型的实例才可以被抛出(throw)或捕获(catch)。

Error和Exception体现了Java平台设计者对不同异常情况的分类。Exception是程序正常运行中可以预料的意外情况,可能并且应该被捕获,进行相应处理。Error则是指在正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序(比如JVM)处于非正常的、不可恢复状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如OutOfMemoryError,其为Error的子类。

再谈谈Checked Exception 与 Runtime Exception的区别:

  1. Checked Exception 的基类是 Exception; Runtime Exception 的基类是 RuntimeException (不过 RuntimeException 的父类也是 Exception).
  1. Checked Exception 要求必须捕获. 一个方法内如果抛出了 Checked Exception, 必须要么 catch, 要么给方法声明 throws 以交给上一层去处理, 如果漏写了 catch 会直接通不过编译. Runtime Exception 就没这个要求, 不强制 catchthrows, 这样对于明显不会异常的代码段就不必处理了.