try catch 应该放在for里还是不该放for里

简介: try catch 应该放在for里还是不该放for里

这个问题我也很疑惑,所以自己写了test来给自己解惑下

try catch在for循环外面,并且,catch 只答应日志,不抛出异常

public static void main(String[] args) {
        try {
            for (int i = 0; i < 10; i++) {
                System.out.println(i);
                int i1 = 1;
                System.out.println(i1 / i);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println("是否继续");
    }

java.lang.ArithmeticException: / by zero

0

   at com.linewell.zhzf.api.gateway.gateway.Test.main(Test.java:14)

是否继续

Process finished with exit code 0

try catch在for 循环外面就直接抛出异常,就不继续执行for循环里的业务了,继续走for循环外面的业务。

public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            try {
                System.out.println(i);
                int i1 = 1;
                System.out.println(i1 / i);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        System.out.println("是否继续");
    }

0

java.lang.ArithmeticException: / by zero

1

1

   at com.linewell.zhzf.api.gateway.gateway.Test.main(Test.java:15)

2

0

3

0

4

0

5

0

6

0

7

0

8

0

9

0

是否继续

Process finished with exit code 0

如果在for 循环里的话,就继续走for循环里的其他值操作。

  public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            try {
                System.out.println(i);
                int i1 = 1;
                System.out.println(i1 / i);
            } catch (Exception e) {
                throw new RuntimeException();
            }
        }
        System.out.println("是否继续");
    }

0

Exception in thread "main" java.lang.RuntimeException

   at com.linewell.zhzf.api.gateway.gateway.Test.main(Test.java:17)

Process finished with exit code 1

这里直接throw 一个异常出去,就不继续for循环了,并且for循环外面也不执行了。

public static void main(String[] args) {
        try {
            for (int i = 0; i < 10; i++) {
                System.out.println(i);
                int i1 = 1;
                System.out.println(i1 / i);
            }
        } catch (Exception e) {
            throw new RuntimeException();
        }
        System.out.println("是否继续");
    }

0

Exception in thread "main" java.lang.RuntimeException

   at com.linewell.zhzf.api.gateway.gateway.Test.main(Test.java:17)

Process finished with exit code 1

这里直接throw 一个异常出去,也是走一次。

结论:

如果catch里throw new RuntimeException() 那么建议直接写for循环外面。

如果catch发生后,还要继续在for里循环执行,建议写在for循环里,并且不要throw异常。

目录
相关文章
|
7月前
|
人工智能 开发框架 搜索推荐
AI Agent构建强大外部工具调用能力不足,MCP Server怎样应对?MCP Serve在企业级Agent系统中的关键意义
本文AI产品专家三桥君探讨了MCP Server在企业级AI Agent系统中的关键作用,通过标准化工具接口实现AI与外部服务的无缝集成。三桥君重点阐述了分布式系统中的会话管理、状态持久化等实践方案,强调MCP Server在降低AI决策风险、提升系统可靠性方面的企业价值,为AI产品经理提供了架构设计与优化策略的实践指导。
581 0
|
SQL 关系型数据库 数据库
学习分布式事务Seata看这一篇就够了,建议收藏
学习分布式事务Seata看这一篇就够了,建议收藏
21877 2
|
NoSQL Java Redis
List集合按照由小到大排序或者由大到小排序
List集合按照由小到大排序或者由大到小排序
307 0
Java系列 之除字符串中的空格(trim())
这篇文章介绍了Java中`String`类的`trim()`方法,用于去除字符串首尾的空格,并指出`trim()`只能去除半角空格,对于全角空格需要先用`replace()`方法替换成半角空格再进行去除。
完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
27737 0
完美解决Non-terminating decimal expansion; no exact representable decimal result.异常
|
Java 编译器
成功解决:java file outside of source root
解决Java文件不在源代码根目录内的问题,可以通过在IDEA中将包含.java文件的目录设置为Sources Root来修复。
成功解决:java file outside of source root
|
1天前
|
人工智能 自然语言处理 JavaScript
2026年Windows+Ollama本地部署OpenClaw保姆级教程:本地AI Agent+阿里云上快速搭建
2026年OpenClaw凭借本地部署、私有化运行的特性,成为打造个人智能体的核心工具,而Ollama作为轻量级本地大模型管理工具,能让OpenClaw摆脱对云端大模型的依赖,实现**本地推理、数据不泄露、全流程私有化**的智能体验。本文基于Windows 11系统,从硬件环境准备、Ollama安装与模型定制、OpenClaw部署配置、技能扩展到常见问题排查,打造保姆级本地部署教程,同时补充阿里云OpenClaw(Clawdbot)快速部署步骤,兼顾本地私有化需求与云端7×24小时运行需求,文中所有代码命令均可直接复制执行,确保零基础用户也能快速搭建属于自己的本地智能体。
2212 9
|
12天前
|
人工智能 自然语言处理 监控
OpenClaw skills重构量化交易逻辑:部署+AI全自动炒股指南(2026终极版)
2026年,AI Agent领域最震撼的突破来自OpenClaw(原Clawdbot)——这个能自主规划、执行任务的智能体,用50美元启动资金创造了48小时滚雪球至2980美元的奇迹,收益率高达5860%。其核心逻辑堪称教科书级:每10分钟扫描Polymarket近千个预测市场,借助Claude API深度推理,交叉验证NOAA天气数据、体育伤病报告、加密货币链上情绪等多维度信息,捕捉8%以上的定价偏差,再通过凯利准则将单仓位严格控制在总资金6%以内,实现低风险高频套利。
6040 55