我一直在浏览主要的 Android SDK(Facebook、Google+,甚至 Android)。我注意到异常似乎从未包含在方法签名中。相反,我看到的是抛出异常,但通常只在文档中列出(如果你幸运的话)。
这种做法是怎么回事?是否有一些声明声明方法签名中的异常是邪恶的?
例子:
来自 android.database.AbstractCursor
void checkPosition()
This function throws CursorIndexOutOfBoundsException if the cursor position is out of bounds.
为什么这样而不是
void checkPosition() throws CursorIndexOutOfBoundsException
我更喜欢后者,因为您可以设置您的 IDE/编译器来实际警告您,而不是仅仅向字节码祈祷文档提到了实际抛出的内容。
最佳答案
这是因为 CursorIndexOutOfBoundsException 是一个 RuntimeException。它不是已检查的异常。
http://developer.android.com/reference/android/database/CursorIndexOutOfBoundsException.html
关于java - 为什么不将异常(exception)添加到签名中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23272069/