Exception是检查型异常,在程序中必须使用try...catch进行处理;
RuntimeException是非检查型异常,例如NumberFormatException,可以不使用try...catch进行处理,但是如果产生异常,则异常将由JVM进行处理;
RuntimeException用法:
package m01d01; public class Exception01 { public static void testRuntimeException() throws RuntimeException{ throw new RuntimeException("运行时异常"); } public static void testException() throws Exception{ throw new Exception("编译时异常"); } public static void main(String[] args) { testRuntimeException(); } }
可以看见,运行时异常可以不用 try...catch进行处理,仍然能运行成功;
结果为:
但是Exception必须要捕获,否则编译就会报错:
使用try...catch进行处理后:
package m01d01; public class Exception01 { public static void testRuntimeException() throws RuntimeException{ throw new RuntimeException("运行时异常"); } public static void testException() throws Exception{ throw new Exception("编译时异常"); } public static void main(String[] args) { try { testException(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } testRuntimeException(); } }
输出结果:
本文分享自微信公众号 - 程序员的时光(gh_9211ec727426)
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2019-11-04
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
我来说两句