try catch在for循环外面还是里面

本文通过具体实例对比了在循环中不同位置使用异常处理(try-catch)的效果,详细解释了将try-catch放置于循环内外的区别及其适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 一、实例展示

static void Main(string[] args) {

    //将异常写在循环外,出现异常循环终止
    try {
        Console.WriteLine("抛出异常不输出");
        for (int i = 0; i < 5; i++) {
            Console.WriteLine(i);
            Convert.ToInt16("test");
        }
    } catch (Exception ex) {
        Console.WriteLine(ex.Message);
    }

    //将异常写在循环内,不影响下一次循环
    Console.WriteLine("抛出异常继续输出");
    for (int i = 0; i < 5; i++) {
        try {
            Console.WriteLine(i);
            if (i == 1) {
                Convert.ToInt16("test");
            }
        } catch (Exception ex) {
            Console.WriteLine(ex.Message);
        }
    }
    Console.ReadKey();
}

说明:

  • 将异常写在循环内,不影响下一次循环
  • 将异常写在循环外,出现异常循环终止

总结:

  • 当循环内的代码出现异常,需要结束循环时,将try代码块放在循环外;
  • 当循环内的代码出现异常,需要继续执行循环时,将try代码块放在循环内
public static void main(String[] args) {
    int runs = 3; //循环运行次数

    //try代码块在循环外
    try {
        for (int i = 0; i < runs; i++) {
            if (i == 0) {
                throw new RuntimeException("try在循环外时,出现运行异常");
            }
            System.out.println("do something...");
        }
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }

    System.out.println("--------------------------");

    //try代码块在循环内
    for (int i = 0; i < runs; i++) {
        try {
            if (i == 0) {
                throw new RuntimeException("try在循环内时,出现运行异常");
            }
            System.out.println("do something...");
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }
}

上面代码运行结果: 

二、个人理解

理解1:外面。如果遇到异常,循环停止如果放在循环里面,就会一直抛出异常信息,最后内存溢出

理解2:

这个随便 看你的需求;
如果出异常了 你的for循环不想继续下去就放在外面;
放在里面还可以让for循环的后续循环继续运行。

理解3:个人建议:用在for里面的具体方法中,这样具有针对性。

理解4:一般都是for循环在try里面,很少能看见for循环里用try catch的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值