• ベストアンサー

例外処理について

こんにちは。 とあるメソッドで例えば 「void openErrorFile(){」とあるのですが、 メソッド内部で } catch (Exception e) { throw new RuntimeException();} と例外をThrowしています。 この場合、メソッドの定義「openErrorFile()」にはThrows句を 付ける必要は無いのでしょうか?。 すみませんがご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • bnosuke-x
  • ベストアンサー率39% (43/110)
回答No.2

RuntimeExceptionは実行を継続できないくらい深刻な事態の時に投げられるものなので、ソース中ではスルーしてVMに処理をさせても良いことになっていたと思います。 また、至る所で発生の可能性があるので、いちいちthrowsを書いていられないということあったかと思います。 ただ、それをキャッチすることも可能だったと思います。 メモリ不足の時にダメ元でも途中の処理内容を保存するとか、 ゼロでの割り算などの時にエラーメッセージを表示するとか。 あまり有意義ではなさそうですが。

その他の回答 (1)

noname#49664
noname#49664
回答No.1

JavaSE APIを見てみると、以下のようにあります。 RuntimeException は、Java 仮想マシンの通常の処理でスローすることができる各種の例外のスーパークラスです。 メソッドの実行中にスローされるがキャッチされない RuntimeException のサブクラスについては、メソッドの throws 節でそれらを宣言する必要はありません。 というわけで、throwsは不要です。

関連するQ&A