Jac*_*ine 74 java oop exception-handling exception
例如,框架/ JDK中的许多方法可能会抛出
java.lang.SecurityException
Run Code Online (Sandbox Code Playgroud)
但是这没有在方法签名中指出(因为这是通常为已检查的异常保留的做法).我想说,在方法sigs中声明RuntimeExceptions有许多好处(例如类似于静态类型检查).我喝醉了还是其他的?
Rob*_*bin 63
我不会在签名中声明未经检查的异常,因为它会误导该API的用户.是否必须明确处理异常已不再明显.
在javadoc中声明它是一种更好的方法,因为它允许某人在认为有必要时处理它,但知道他们可以在需要时忽略它.这使得已选中和未选中之间的分离清晰.
Dhe*_*.S. 32
"如果记录方法的API非常好,包括它可以抛出的异常,为什么不指定运行时异常呢?" 运行时异常表示编程问题导致的问题,因此,无法合理地期望API客户端代码从它们恢复或以任何方式处理它们.这些问题包括算术异常,例如除以零; 指针异常,例如尝试通过空引用访问对象; 和索引异常,例如尝试通过索引太大或太小来访问数组元素.
运行时异常可以在程序中的任何地方发生,而在典型的程序中,它们可以非常多.必须在每个方法声明中添加运行时异常会降低程序的清晰度.
Sam*_*num 16
看看Collection #add的javadoc
提到了大量未经检查的例外情况:
Throws:
UnsupportedOperationException - add is not supported by this collection.
ClassCastException - class of the specified element prevents it from being added to this collection.
NullPointerException - if the specified element is null and this collection does not support null elements.
IllegalArgumentException - some aspect of this element prevents it from being added to this collection.
Run Code Online (Sandbox Code Playgroud)
如果您有耐心,我建议您以这种方式彻底记录方法引发的可能异常.在某种程度上,对未经检查的异常执行此操作更为重要,因为已检查的异常在某种程度上是自我记录的(编译器会强制调用代码来确认它们).
在我看来,最好至少在方法的javadoc中声明运行时异常.在签名中声明它会使出现问题时可能发生的事情变得更加明显.这是我建议提供此信息的主要原因.
仅供参考:随着时间的推移(现在在2017年),我现在更倾向于仅在javadoc中记录它们并尽可能避免检查异常.
| 归档时间: |
|
| 查看次数: |
31677 次 |
| 最近记录: |