Exception 和 RuntimeException区别

Exception 和 RuntimeException都是异常,他们有什么区别呢?是不是面试的时候经常被问道?今天我们就好好聊聊Exception和RuntimeException。

概念

  1. Exception :受检查的异常,这种异常是强制我们catch或throw的异常。你遇到这种异常必须进行catch或throw,如果不处理,编译器会报错。比如:IOException。

  2. RuntimeException:运行时异常,这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的NullPointerException,我们在写程序时不会进行catch或throw。

RuntimeException也是继承自Exception的,只是虚拟机对这两种异常进行了区分。小伙伴在编写自己的异常时,要选好继承哪个异常哦~~

实例

接下来,我们看看在实际编写程序时,会有什么表现。首先,我们写一个MyTest类,并写两个抛出异常的方法。如下图:

 
image

打开UC浏览器 查看更多精彩图片

第一个方法抛出Exception,第二个方法抛出RuntimeException。然后,我们编写main函数,分别调用两个方法,如下图:

 
image

打开UC浏览器 查看更多精彩图片

我们看到在调用第一个方法时,编译器提示我们要处理异常,进行try-catch或者在方法上将异常抛出。而在调用第二个方法时,并没有提示我们进行异常处理。这也就是Exception和RuntimeException的区别。



作者:牛初九
链接:https://www.jianshu.com/p/3a93b03c0885
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/kuangwl/p/13259498.html