【发布时间】:2019-02-04 07:04:46
【问题描述】:
当在方法中返回一个对象(如Document)并且创建不是implements AutoCloseable 时,我经常看到在第一行声明对象并在最后返回它:
public Document myMethod() {
Document document = null
try {
document = docFactory.newDocumentBuilder().newDocument();
//...work on document
} catch(Exception e) {
// Handle Exception
}
return document;
}
似乎下面的规则总是正确的,在try子句中创建并返回(并且可以将这段代码提取到方法中)
public Document myMethod() {
try {
Document document = docFactory.newDocumentBuilder().newDocument();
//...work on document
return document;
} catch(Exception e) {
// Handle Exception
}
return null;
}
我错过了什么吗? (您可以将null 可以是默认值但不那么重要的情况联系起来)
【问题讨论】:
-
我不确定你的问题是什么。我只能说第二个选项可能更安全,因为如果创建文档时出现异常,则返回
null而不是可能损坏/未完成的文档。 -
@kajacx 这是一个答案,只是想知道我总是/几乎总是可以改变这些方法
-
请不要捕捉异常,而是特定的异常。
-
@WesleyDeKeirsmaeker 是的,请忽略异常,我试图概括具体问题,具体代码为
ParserConfigurationException
标签: java return-value default-value