try-catch和throw,throws的区别
程序员文章站
2022-07-14 10:27:20
...
参考文章
https://www.cnblogs.com/zhangdaicong/p/6127984.html
throw跟try...catch...finally的对比:
public class ZeroTest {
public static void main(String[] args) {
try {
int i = 100 / 0;
System.out.print(i);
} catch (Exception e) {
System.out.print(1);
throw new RuntimeException();
} finally {
System.out.print(2);
}
System.out.print(3);
}
}
try catch是直接处理,处理完成之后程序继续往下执行,throw则是将异常抛给它的上一级处理,程序便不往下执行了。
本题的catch语句块里面,打印完1之后,又抛出了一个RuntimeException,程序并没有处理它,而是直接抛出,因此执行完finally语句块之后,程序终止了。
执行结果12。首先执行try,遇到算术异常,抛出,执行catch,打印1,然后抛出RuntimeException,缓存异常,执行finally,打印2,然后抛出RuntimeException。
如果catch中没有抛出RuntimeException,则执行结果为123。
下一篇: 批量删除Dokcer容器/镜像
推荐阅读
-
浅析php中抽象类和接口的概念以及区别
-
芹菜和水芹的区别在哪?芹菜的作用和功效是什么?
-
Java中HashMap和TreeMap的区别深入理解
-
SQL中distinct 和 row_number() over() 的区别及用法
-
vue的style绑定background-image的方式和其他变量数据的区别详解
-
详解Node.js中path模块的resolve()和join()方法的区别
-
茼蒿的花蕊可以吃吗?它和格桑花有什么区别?
-
浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别
-
CPU盒装和散装有什么区别 CPU盒装和散装的区别介绍
-
股票和女孩的区别