[英]Java exception handling in parsers
假设我们有这么简单的解析器:
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;
}
}
是否应该在方法或调用代码中捕获异常? 哪种变体更好?
解析器不能对异常执行任何操作,因此对于解析器来说这是一种特殊情况,并且它不会产生任何可预期的结果。 外面的人应该处理它。
特别是,它不应该返回null
因为它会导致调用代码中的大量空值检查(您很容易忘记放置,或者由于缺少有关您的实现的文档,我只是不知道是否必须检查null
而不看代码)。 这是Java中的异常旨在解决的问题之一。 通过在方法签名中声明checked-exception,您可以强制解析器的用户处理可能不会出现值的事实。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.