乐趣区

关于java:Java面试请简单说一下你对受检异常和非受检异常的理解

Hi,我是 Mic

明天给大家分享一道阿里一面的面试题。

这道题目比拟根底,然而确难倒了很多人。

对于”受检异样和非受检异样的了解“

咱们来看看普通人和高手的答复。

普通人:

嗯。。。。。。。

运行异样不须要捕捉的其余异样是须要强制捕捉的,像一些 IO 异样。

高手:

好的。

所谓的受检异样,示意在编译的时候强制查看的异样,这种异样须要显示的通过 try/catch 来捕获,或者通过 throws 抛出去,否则从程序无奈通过编译。

而非受检异样,示意在编译器能够不须要强制查看的异样,这种异样不须要显示去捕获。

在 Java 外面,所有的异样都是继承自 java.lang.Throwable 类,Throwable 有两个间接子类,Error 和 Exception。

Error 用来示意程序底层或者硬件无关的谬误,这种谬误和程序自身无关,比方常见的 OOM 异样。这种异样和程序自身无关,所以不须要查看,属于非受检异样。

Exception 示意程序中的异样,可能是因为程序不谨严导致的,比方 NullPointerException。

Exception 上面派生了 RuntimeException 和其余异样,其中 RuntimeException 运行时异样,也是属于非受检异样。

所以,除了 Error 和 RuntimeException 及派生类以外,其余异样都是属于受检异样,比方 IOException、SQLException。

之所以在 Java 中要设计一些强制查看的异样,我认为次要起因是思考到程序的正确性、稳定性和可靠性。

比方数据库异样、文件读取异样,这些异样是程序无奈提前预料到的,然而一旦呈现问题,就会造成资源被占用导致程序呈现问题。

所以这些异样咱们须要被动捕捉,一旦呈现问题,咱们能够做出相应的解决,比方敞开数据库连贯、文件流的开释等。

以上就是我对这个问题的了解!

总结

这个问题并不难,然而在理论工作中,如何用好异样又显得很重要。

从高手的答复中能够显著看到他对异样的了解档次是比拟深的,别离介绍了受检和非受检异样,

以及在 Java 中这两种异样是如何分类,最初阐明了这两种异样的价值。

喜爱我的作品的小伙伴记得点赞和珍藏加关注。

版权申明:本博客所有文章除特地申明外,均采纳 CC BY-NC-SA 4.0 许可协定。转载请注明来自 Mic 带你学架构
如果本篇文章对您有帮忙,还请帮忙点个关注和赞,您的保持是我一直创作的能源。欢送关注同名微信公众号获取更多技术干货!

退出移动版