You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何抛出异常且不中断程序?附代码示例

问题解答

先修正原代码的编译错误

原代码里Client类的客户ID字段是cID,但getClientName方法里错误写为myClient.clientID,这会导致编译失败,先统一字段匹配逻辑(下面示例以cID为准修正)。

修改getClientName方法,未找到时抛出异常

调整方法逻辑:遍历客户列表找到匹配ID则返回全名,遍历结束未找到直接抛出指定异常:

public String getClientName(String customerID) {
    for (Client myCustomer : myClient) {
        if (myCustomer.cID.equals(customerID)) {
            return myCustomer.getFullName();
        }
    }
    // 未匹配到客户时抛出异常
    throw new ClientNotFoundException();
}

调用方法时捕获异常,实现“仅显示信息不中断程序”

要避免程序中断,只需在调用getClientName的位置用try-catch块捕获异常,仅打印信息即可:

// 示例调用代码
public static void main(String[] args) {
    // 假设已初始化myClient列表
    try {
        String clientName = getClientName("C001");
        System.out.println("找到客户:" + clientName);
    } catch (ClientNotFoundException e) {
        // 仅输出异常信息,不中断程序
        System.out.println("提示:" + e.getMessage());
    }
    // catch块后的代码会正常执行,程序不会终止
    System.out.println("程序继续运行...");
}

需求可行性说明

这个需求完全可行:

  • ClientNotFoundException属于非受检异常(继承自RuntimeException),虽然无需强制声明,但依然可以被try-catch块捕获。
  • 捕获异常后仅做信息打印,不向外抛出新异常,后续代码会正常执行,不会导致程序中断。

内容的提问来源于stack exchange,提问作者Qmails

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 05:20:11