Java捕获异常后如何继续执行程序?Doubly Linked List插入场景
解决双向链表批量插入时单个错误终止后续操作的问题
你当前的代码把所有插入操作都放在同一个try块里,一旦某一步插入抛出异常,程序会立刻跳转到catch块执行,剩下的插入代码完全不会运行——这就是为什么最终只输出第一个1的原因。
要实现单个插入失败不影响后续操作的需求,只需要给每一个插入操作单独包裹try-catch块,这样单个错误只会被局部处理,不会中断整个批量插入流程。
修改后的main方法代码如下:
public static void main(String[] args) { LinkedList myList = new LinkedList(); // 每个插入操作单独处理异常 try { myList.Insert(1, 0); } catch (Exception ex) { System.out.println(ex.toString()); } try { myList.Insert(5, 54); // 错误的插入操作 } catch (Exception ex) { System.out.println(ex.toString()); } try { myList.Insert(1, 0); } catch (Exception ex) { System.out.println(ex.toString()); } try { myList.Insert(1, 0); } catch (Exception ex) { System.out.println(ex.toString()); } myList.Out(); myList.ReverseOutput(); }
说明
每个插入操作独立包裹try-catch后,即使中间的myList.Insert(5,54)抛出异常,后续的两次插入依然会正常执行,最终链表中会有三个1,符合你的期望输出。
内容的提问来源于stack exchange,提问作者Fahrettin Gültekin
相关产品推荐
相关产品推荐

