首页 > 图灵资讯 > java面试题>正文
金三银四精选面试题-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的区别:
- Checked Exception 的基类是
Exception
; Runtime Exception 的基类是RuntimeException
(不过RuntimeException
的父类也是Exception
).
- Checked Exception 要求必须捕获. 一个方法内如果抛出了 Checked Exception, 必须要么
catch
, 要么给方法声明throws
以交给上一层去处理, 如果漏写了catch
会直接通不过编译. Runtime Exception 就没这个要求, 不强制catch
或throws
, 这样对于明显不会异常的代码段就不必处理了.