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
相关产品推荐
相关产品推荐

