返回null值或从API方法抛出异常是否更好?
返回null需要全部进行丑陋的空检查,如果未选中返回则会导致严重的质量问题.
抛出异常会强制用户对错误条件进行编码,但由于Java异常冒泡并强制调用者代码处理它们,因此通常使用自定义异常可能是一个坏主意(特别是在java中).
有什么健全和实用的建议?
如果null是可接受的返回值(即,它可能来自有效输入而不是错误情况)则返回null; 否则抛出异常.
我完全不理解你的陈述,即检查异常可能是一个坏主意,因为调用者被迫处理它们 - 这是检查异常的全部要点.它可以防止在没有正确处理的情况下传播到代码中的错误情况.
我认为答案完全取决于您的应用程序的上下文,以及您认为是"特殊情况"与程序员错误之间的关系.
例如,如果编写XML解析器,您可以选择实现以下方法:
/**
* Returns first child element with matching element name or else
* throws an exception. Will never return null.
*/
Element getMandatoryChildElement(Element parent, String elementName)
throws MissingElementException;
Run Code Online (Sandbox Code Playgroud)
...因为这种方法允许您在单个逻辑块中实现消息解析代码,而无需在检索每个元素或属性后检查消息是否格式正确.
| 归档时间: |
|
| 查看次数: |
3636 次 |
| 最近记录: |