是否有一些库可以提供围绕 java io 的包装器,允许不捕获所有异常,以使代码更清晰、更易于理解。
假设我不想拥有这个:
public void loadSomething(InputStream in) throws SomeCheckingException {
BufferedReader reader = getReader(in);
try {
someId = reader.readLine();
...
} catch(IOException ex) {
...
} finally {
try {
reader.close();
} catch(Exception ex) {
...
}
}
}
我宁愿有这个:
public void loadSomething(InputStream in) throws RuntimeException {
someId = getReader(in).readLine();
}
该库将处理 getReader 内部的异常并关闭inputstream
,将一些错误放入日志(如果已配置),将异常从方法中抛出给客户端。而客户,如果他愿意,他会处理的。
在客户端:
try {
loadSomething(...)
} catch(RuntimeException ex) {...}