簡體   English   中英

解析器中的Java異常處理

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM