プロが教えるわが家の防犯対策術!

mainメソッドのthrows節で設定した例外はどこでcatchされる?

java初心者です。

例えば、mainメソッドの中でAというメソッドが呼ばれるとします。
そのAについての宣言文(定義文)にthrows節が書かれているような場合、
mainメソッド内で、Aを呼び出す際、Aの実行の中で、もし例外が発生した場合には、
mainでその例外をキャッチして処理するよう、mainの記述を行う必要があるかと思います。

では、mainメソッド自体に設定したthrows節(つまり、
public static void main(String[] args) throws TestException{ ~略~ } という宣言)
については、
その例外(ここでは、TestException)は、どこでcatchすることになるのでしょうか?

もしや、「投げっぱなし」ということなのでしょうか?

mainメソッド自体は、基本的に他のメソッドから呼ばれるものではないかと思うので、
mainメソッドでスローした例外の受け取り場所がわからなくて質問させていただきました。

色々調べたつもりなのですが、よくわからなくて困ってしまいました。
あまりに初歩すぎて、どこにも書かれていないのかなんなのか、
その説明が見当たらないこと自体にも、疑問を感じている次第です。苦笑

以上、どなたか、宜しくお願い致します。

A 回答 (1件)

そのもしやの「投げっぱなし」です。

mainメソッドの場合に限らず、throwされた例外をcatchするメソッドがない場合には標準エラー出力にその例外を表示して、該当スレッドの実行はそこで終了です。

public class QA6049493 {
public static void main(String[] args) throws Exception {
throw new Exception("from main");
}
}

>java QA6049493
Exception in thread "main" java.lang.Exception: from main
at QA6049493.main(QA6049493.java:3)
    • good
    • 3
この回答へのお礼

ま、まさか、そんなことになっていたなんてっ、、、。
大変よくわかりました、ありがとうございました。
とても助かりました。

お礼日時:2010/07/19 21:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!