[英]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.