2002/03/19

_ クラス宣言で例外キャッチ?

javaのコードをコンパイルすると次のようなエラーで怒られる。
compile:
    [javac] Compiling 2 source files to /home/classes
    [javac] /home/src/Graph.java:18: 例外 java.lang.Exception は報告されません。
スローするにはキャッチまたは、スロー宣言をしなければなりません。
    [javac] public class Graph extends Parent {
    [javac]        ^
クラス宣言で例外をキャッチしろとはまた御無体な。 とも思ったけど、ちょっと考えて理由がわかった。 Parentクラスのコンストラクタがthrows Exceptionな場合、 Graphクラスのコンストラクタをthrows Exception 付きで定義しないと、 こういうエラーがでるらしい。 というわけで以下のコンストラクタ定義を追加して無事コンパイル成功
    public Graph() throws Exception{
        super();
    }