Sta*_*yuk 4 java parsing exception-handling
假设我们有这么简单的解析器:
public class ResourceManager {
private final static Logger LOG = Logger.getLogger(ResourceManager.class);
public Museum parseJSONFile(String filePath) /*throws IOException ???? */ {
Museum museum = null;
try {
ObjectMapper objectMapper = new ObjectMapper();
museum = objectMapper.readValue(new File(filePath), Museum.class);
} catch(IOException e) {
LOG.error(e);
}
return museum;
}
}
Run Code Online (Sandbox Code Playgroud)
是否应该在方法或调用代码中捕获异常?哪种变体更好?
解析器不能对异常执行任何操作,因此对于解析器来说这是一种特殊情况,并且它不会产生任何可预期的结果.外面的人应该处理它.
特别是,它不应该返回,null因为它会导致调用代码中的大量空值检查(您很容易忘记放置,或者由于缺少有关您的实现的文档,我只是不知道是否必须检查因为null没有看到代码).这是Java中的异常旨在解决的问题之一.通过在方法签名中声明checked-exception,您可以强制解析器的用户处理可能不会出现值的事实.
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |