Java 8正式将Streamt API的 java.io.UncheckedIOException
引入到了Lambda的JDK类库中,因为lambda表达式无法声明其throws
-clause,并且lambda主体无法抛出诸如IOException
之类的已检查异常。UncheckedIOException
和Stream API的成语/最佳实践是什么?我应在什么条件下显式抛出新的UncheckedIOException
对象,何时应捕获UncheckedIOException
异常?
最佳答案
您将在与当前使用的库方法(BufferedReader.lines
和Files.lines
)相同的情况下抛出该异常:也就是说,当您包装由打开文件后的操作导致的I/O异常时(文件打开操作仍会抛出IOException) )。至于捕获它,这取决于您的IO错误恢复策略:换句话说,请执行任何处理非流代码中包装的IOException的操作。