我一直在浏览主要的Android SDK(Facebook,Google +,甚至是Android)。我注意到的是,异常似乎从未包含在方法签名中。相反,我看到的是异常被抛出,但通常只在文档中列出(如果你很幸运)。
这种做法有什么用?是否有一些宣言声明方法签名中的异常邪恶?
实施例:
来自android.database.AbstractCursor
void checkPosition()
此函数抛出 如果光标位置不在,则为CursorIndexOutOfBoundsException 界限。
为什么这样而不是
void checkPosition() throws CursorIndexOutOfBoundsException
我更喜欢后者,因为你可以设置你的IDE /编译器来实际警告你,而不是只是祈祷文档提到文件中提到的实际被抛出的东西。
答案 0 :(得分:6)
这是因为CursorIndexOutOfBoundsException是一个RuntimeException。它不是一个经过检查的例外。
http://developer.android.com/reference/android/database/CursorIndexOutOfBoundsException.html
答案 1 :(得分:1)
在您的确切示例中,这是有用的信息。
只有在调用代码中存在严重错误的情况下才会抛出此异常,因此在编写运行时异常的try/catch
时没有意义,这在生产中不会发生,并且在那里&#39没有必要弄乱签名。