gpt4 book ai didi

Java - 可能会失败的迭代器

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:51:54 25 4
gpt4 key购买 nike

如标题中所述,我正在尝试针对某些数据设计一个迭代器,这可能会在某处失败。一个例子是 Iterator<DatabaseObject>那将在调用 next() 时从数据库中读取下一行并继续。其他示例可能包括使用引发异常的 API 中的对象处理数据。问题是在这种情况下如何响应,因为 Iterator 不允许引发任何异常......我们应该抛出 NoSUchElementException 吗?并在那里提供有意义的信息?

最佳答案

您可以抛出未经检查的异常。抛出 NoSuchElementException 是有意义的,因为事实上,一个错误阻止了这样一个元素。

如果异常能包装任何底层异常就好了。不幸的是,NoSuchElementException 没有接受另一个异常的构造函数。因此,如果您想向上传播根本原因,则必须采用不同的方法,例如抛出 RuntimeException:

try {
...
} catch (<some exception type> e) {
throw new RuntimeException("Next element not accessible", e);
}

或者,您可以返回一些保留值(例如 null)。

关于Java - 可能会失败的迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13570561/

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