ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

throwsの減少

2009-04-25 19:33:16 | PG(Java)

メソッドをオーバーライドする際、throws句に宣言されていた例外は減らすことが出来る
減らした場合、親メソッドで宣言されていた例外は暗黙で宣言された扱いで引き継がれる。
と思っていたのだけれど、間違いっぽい(汗)

正解は、その例外は発生しない(という宣言)になる。
つまり、オーバーライドしたメソッド内からthrowすることが出来なくなるし、
そのメソッドを呼び出す側はtry~catchを書く必要が無くなる!

try~catchの必要性も、実行時のインスタンスのクラスやその親クラスにthrowsがあるかどうかは関係なくて、コンパイル時に使用されているクラス(変数のクラスやインターフェース)にthrowsがあるかどうかで決まる。

Vectorクラスのclone()を使ってみたらCloneNotSupportedExceptionのtry~catchが不要だったので、あれ?と思って調べてみたら、そういう事だった…。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする