2011-12-21 10 views
-1

私は、プログラムの出力を印刷せずに予測するタスクがあります。このプログラムの人で2つの例外の違い

が出力

Exception in thread "main" 
java.lang.MethodNotFoundException 

ののtoString()メソッドとバリアントをoverwritteなかった2つ目は

cannot resolve symbol 
symbol: method toString() 

であるこれらの2の違いは何ですか?

+0

**私たちにあなたの_code _を示してください。** – SLaks

+2

これらのいずれも起こりません、toString()はすべてのJavaオブジェクトに対して定義されています。 – josefx

+0

宿題の質問の場合宿題タグを使用 – ethan

答えて

0

前者は実行時例外です.2番目は、コードを最初に実行できないエラーをコンパイルすることです。前の例外をスローして子の1つがそれをオーバーライドできなかったクラスを持つ明示的なクラス階層を定義しない限り、これらをオーバーライドせずにtoStringメソッドを実行すると、これらのどちらも発生しません。

+0

ありがとうございます!) –

0

動的にメソッドの存在がテストされ、存在しないランタイムに最初に表示されます。

メソッドが存在しないため、2番目はコンパイル時です。

+0

ありがとう!=) –

0

2番目の例外はチェックされた例外です。これはアプリケーションで捕捉されて処理され、2番目の例外タイプをキャッチしない場合、コンパイル時にエラーがスローされます。

第1の例外はチェックされていない例外です。コンパイル中にコンパイラによって検出されず、それをキャッチできません。より悪い例外と呼んでください:)

+0

これは全く誤りです。 – SLaks

+0

ありがとう!=) –

関連する問題