注明:微信推文上看到的
从三个角度去分析问题 :使用场景、性能分析、个人看法
try catch 在 for 循环 外面
代码:
public static void main(String[] args) {
try {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
//故意制造一下异常
int num = 1 / 0;
} else {
System.out.println("i:" + i + " 业务正常执行");
}
}
} catch (Exception e) {
System.out.println("try catch 在for 外面的情形, 出现了异常,for循环显然被中断");
}
}
简单来说,就是for循环在外面的时候,如果出现了异常,那么for循环会终止。
try catch在for循环里面
代码:
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
try {
if (i == 3) {
//故意制造一下异常
int num = 1 / 0;
} else {
System.out.println("i:" + i + " 业务正常执行");
}
}catch (Exception e) {
System.out.println("ry catch 在for 里面的情形, 出现了异常,for循环显然继续执行");
}
}
}

结论:try catch在for循环里面的时候,如果for循环过程中出现了异常,异常被catch抓掉,不会影响for循环继续执行
2.性能上
也就是说,try catch 放在for循环里面,因为出现异常不会终止for循环。所以如果存在大量业务处理异常,那么就会有一定的内存消耗情况。
所以在里面和外面几乎没啥区别。
个人看法:
主要看实际场景,需要出现异常就终止循环的就放外面,不需要终止循环,就放里面就OK
文章讨论了try-catch在for循环外部和内部的不同效果,指出异常处理不影响for循环的执行,但在性能方面可能有内存消耗。作者强调根据实际场景选择合适的位置。
1万+

被折叠的 条评论
为什么被折叠?



