首页 > 图灵资讯 > 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的区别:

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

 
上一篇 金三银四精选面试题-JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计?
下一篇 金三银四精选面试题-在自己的代码中,如果创建一个java.lang.String类,这个类是否可以被类加载器加载?为什么。

文章素材均来源于网络,如有侵权,请联系管理员删除。