gpt4 book ai didi

java - 抛出异常时程序无法运行

转载 作者:行者123 更新时间:2023-12-02 05:52:26 25 4
gpt4 key购买 nike

例如,我有:

    private List<Entry> entries = new LinkedList<Entry>();

@Override
public void addEntry(Entry entry) {
entries.add(entry);
Collections.sort(entries);
}

@Override
public void deleteEntry(String input) throws IllegalArgumentException {
for (int i = 0; i < entries.size(); i++) {
if (entries.get(i).getName().equalsIgnoreCase(input) || entries.get(i).getExtension().equalsIgnoreCase(input)) {
entries.remove(i);
}
}
}

我已经对这段代码进行了测试,它工作得很好。一旦我在删除方法中添加 else block 以引发异常,该方法在调用时总是会引发异常。

@Override
public void deleteEntry(String input) throws IllegalArgumentException {
for (int i = 0; i < entries.size(); i++) {
if (entries.get(i).getName().equalsIgnoreCase(input) || entries.get(i).getExtension().equalsIgnoreCase(input)) {
entries.remove(i);
} else {
throw new IllegalArgumentException();
}
}
}

即使输入不正确,上面的代码也会抛出异常。你对此有什么想法吗?谢谢

最佳答案

如果存在不匹配的条目,您将引发异常。

您应该在开始循环之前检查输入,并且仅在输入无效时抛出 IAE。您不需要循环来进行此检查。

关于java - 抛出异常时程序无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23426514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com