Exception 和 RuntimeException都是异常,他们有什么区别呢?是不是面试的时候经常被问道?今天我们就好好聊聊Exception和RuntimeException。
概念
Exception :受检查的异常,这种异常是强制我们catch或throw的异常。你遇到这种异常必须进行catch或throw,如果不处理,编译器会报错。比如:IOException。
RuntimeException:运行时异常,这种异常我们不需要处理,完全由虚拟机接管。比如我们常见的NullPointerException,我们在写程序时不会进行catch或throw。
RuntimeException也是继承自Exception的,只是虚拟机对这两种异常进行了区分。小伙伴在编写自己的异常时,要选好继承哪个异常哦~~
实例
接下来,我们看看在实际编写程序时,会有什么表现。首先,我们写一个MyTest类,并写两个抛出异常的方法。如下图:
打开UC浏览器 查看更多精彩图片
第一个方法抛出Exception,第二个方法抛出RuntimeException。然后,我们编写main函数,分别调用两个方法,如下图:
打开UC浏览器 查看更多精彩图片
我们看到在调用第一个方法时,编译器提示我们要处理异常,进行try-catch或者在方法上将异常抛出。而在调用第二个方法时,并没有提示我们进行异常处理。这也就是Exception和RuntimeException的区别。大家了解了吗?
大家如有任何疑问,欢迎在评论区讨论~~