我一直在瀏覽主要的Android SDK(Facebook,Google +,甚至Android)。我注意到的是異常似乎從未包含在方法簽名中。相反,我看到的是異常被拋出,但通常只在文檔中列出(如果你幸運的話)。爲什麼沒有將特例添加到簽名中?
這種做法是怎麼回事?是否有一些宣言在方法簽名中聲明異常邪惡?
實例: 從android.database.AbstractCursor
空隙checkPosition()
此函數拋出 CursorIndexOutOfBoundsException如果光標位置超出 邊界。
爲什麼這不
void checkPosition() throws CursorIndexOutOfBoundsException
我更喜歡後者,因爲你可以設置你的IDE /編譯器實際上是警告你,而不是隻是祈禱該文檔提到什麼是實際上可以拋出的字節碼。
在java世界中,關於是否使用checked或unchecked exceptions有很多不同意見。歡迎參加辯論。 :p見http://stackoverflow.com/questions/6115896/java-checked-vs-unchecked-exception-explanation – azurefrog
這不是這個問題,其實主要是基於意見? –
@dystroy部分。這取決於OP是否知道RuntimeExceptions不需要聲明,而不是檢查異常。如果是,那麼他是在詢問我們是否聲明RuntimeExceptions的意見。 – Joffrey