checked Exception和unchecked Exception

平时对这类知识点也不是太上心,总是觉得一些定义除了在面试时候会用得上,在平时也不太用(但越来越感觉,其实也不见得就只有面试时候才需要,相反,如果并不把这些知道点是用于应付面试,平时多学习,其实是很有必要的,又或者说,连这些知识都含含糊糊,其实很难体现得出有什么功底吧)。

 

废话结束,进入正题。

Java中存在两种异常,一种是checked exception,一种是unchecked exception

Java的异常层次结构

从这张图上,可以看到,异常相关的类其实都是由throwable继承,分两类, error 和 exception

 

unchecked异常和checked异常的定义

UncheckedException:派生于Error或者RuntimeException的异常称为unchecked异常

CheckedException:派生于Error或者RuntimeException之外的异常(即除了 uncheckedException 外,都是 checkedException 了。。。)

 

emmmm, 怎么说呢,就是在编码过程中,checkedException(能够被检查到的异常),其它都会显式地提示让开发人员,去try-catch 掉异常。对于那些并不会提示(即,按道理都可以避免掉的异常,比如空指针,找不到资源,指标超界等这些异常都是可以避免的,只能在运行时才能被发现,在编辑阶段是不能被检查出来的)都是 runtimeException, 都是 Unchecked 的。

所以大部分其实都是 uncheckedException, 当然,也没有人会故意去写一些异常,都只是因为没有考虑到,才会出现的运行时异常,只是这些运行时异常,是都是可以“避免”的。

 

posted @ 2022-04-17 16:46  aaacarrot  阅读(108)  评论(0编辑  收藏  举报