2009-07-16 16 views
1

私はJava Programmer Certification(SCJP)試験のために勉強しています。例外に関する質問は、NumberFormatExceptionのような特定の例外を処理するか、すべての例外をキャッチするのが最善である場合は、親を使用してくださいExceptionclassSCJP試験:例外処理

私のコースのチェックされていない例外のベースは、基本的にはプログラムのバグの結果としてRunTimeExceptionです。

new Exception("... my message...") 

を、私はRunTimeExceptionを扱うべきではないこと:これは私が手動で例外を投げるとき、私はむしろ使用する必要があることを意味するのでしょうか? チェックされた例外のみを処理しますか?

答えて

2

できるだけ具体的にExceptionを処理する必要があります。 RuntimeExceptionがスローされる可能性があることが分かっている場合は、通常、プログラムを修正して、Exceptionを投げないようにしてください。

try { 
} catch (FileNotFoundException fnfe){ 
} catch (IOException ioe){ 
} catch (Exception e){ 
} 

あなたはExceptionsを投げている、あなたはほとんどthrow new Exception()を使用しないでください:

は限りチェックを引くようExceptionsはあなたに特定のExceptionあなたがそうできるように処理する必要があり、行きます。 例外がスローされ、誰かにそれが表示されたときに何が起こったかについての情報が表示されます。 (すなわちIndexOutOfBoundsまたはNullPointerExceptions。彼らもメッセージやスタックトレースを見て/ wの具体的な情報を与える。)

あなたがExceptionをスローするようにしたい、とあなたは、Java APIは、あなたのケースに合ったものを持っているとは思わない場合Exceptionをサブクラス化または拡張して、非常に有益な名前を付けることが最善です。

0

これらのケースでは、サブタイプExceptionRuntimeExceptionではなく)をサブクラス化できます。