Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

どうしてメソッドfoo2は例外をキャッチするコードを書いていないのにコンパイルエラーにならないのですか?

題名のとおりです。
foo2は、parseIntを呼び出すときNumberFormatExceptionを投げますが、
fooのようにtry-catchで囲むようコンパイルエラーがでてきません
どうしてなのでしょうか?

よろしくお願いいたします。

class MyException extends Exception {
}

public class Test {
    public static void main(String[] args) {
        foo();
        foo2();
    }

    static void foo() throws MyException {
        throw new MyException();
    }

    static void foo2() throws NumberFormatException {
        Integer.parseInt("hoge");
    }

}

6

回答

7026

閲覧

6件の回答

評価

0

こちらを読んでみてはいかがでしょうか。
http://www.javaroad.jp/java_exception1.htm

評価

0

エラーは、「キャッチする」だけが
目的や利用方法じゃないです。

評価

0

やまださん、不良社員さん。ありがとうございました
非チェック例外(RuntimeExceptionからの派生)でした

評価

0

RuntimeException?

NumberFormatExceptionとは、なんの関係もないよ。

評価

0

> NumberFormatExceptionとは、なんの関係もないよ。

NumberFormatExceptionのお父さんのお母さん、つまりおばあちゃんが
RuntimeExceptionだから、キャッチしなくてもいんだよって、
じっちゃが言ってた。

評価

0

ふむ、今回は俺様の勇み足だったか。退散する。ノシ

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。