Bob*_*r02 3 java iterator exception
正如标题中所描述的那样,我试图在一些数据上设计迭代器,这可能会在某些地方失败.一个例子是Iterator<DatabaseObject>,在调用next()DB中的下一行并继续读取时.其他示例可能包括使用API中的对象处理数据以引发异常.问题是如何在这种情况下做出响应,因为Iterator不允许引发任何异常......我们应该抛出NoSUchElementException并提供有意义的消息吗?
您可以抛出未经检查的异常.抛出是有意义的NoSuchElementException,因为事实上,一个错误阻止了它成为这样一个元素.
如果异常将包装任何底层异常,那将是很好的.不幸的是,NoSuchElementException没有一个构造函数需要另一个异常.因此,如果你想传播潜在的原因,你将不得不采取不同的路线,例如抛出RuntimeException:
try {
...
} catch (<some exception type> e) {
throw new RuntimeException("Next element not accessible", e);
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以返回一些保留值(例如null).