try catch 应该在for循环里面还是外面?
学习改变命运,技术铸就辉煌。
大家好,我是銘,全栈开发程序员。
今天,上班的时候发现一个小问题,try catch 捕获异常的时候,代码放在 for 循环里面和外面是不一样的,现在闲下来了,就好好研究一下它俩到底有啥区别。
使用场景
首先从使用场景来看,
- 当 tyr catch 在 for 循环外面时,示例代码如下:
@Test
public void test2() {
try {
for (int num = 1; num
当出现异常时,控制台如下:
结论:try catch 在 for 循环 外面 的时候服务器托管网, 如果 for循环过程中出现了异常, 那么for循环会终止。
- try catch 在 for 循环里面时,示例代码如下:
@Test
public void test3() {
for (int num = 1; num
运行代码,控制台如下:
结论:try catch 在 for 循环 里面 的时候, 如果 for循环过程中出现了异常,异常被catch抓掉,不影响for循环 继续执行。
性能
从性能上分析,当代码无异常时,时间相差并不大,内存消耗差距也不大,但是,当代码发生异常服务器托管网时,差距就会很明显。
我们用 Runtime 来统计一下内存消耗的情况
Runtime runtime = Runtime.getRuntime();
long memory = runtime.freeMemory();
当循环次数比较多时,业务代码比较复杂时,两者之间的时间和内存的消耗差距会非常的大。
总结
try catch 是放在 for 循环里面还是外面,就看业务的需求,如果需要出现异常就终止循环的,就放在外面,不需要终止循环的,就放在里面。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net