一般に、Java で例外を処理するには 2 つの方法があります。
- メソッド シグネチャに throws 宣言を追加する
- try/catch ブロックで囲みます。
RuntimeException
ただし、一部の例外、特に から継承されたものは、そのような明示的な例外処理を必要としないことに気付きました。
たとえば、以下のようなサンプル メソッドを作成し、明示的な例外処理を必要としないものについては「不要」とマークしました。
public void textException(){
int i = (new Random()).nextInt(100);
switch (i){
case 1:
throw new NullPointerException(); //Not required
case 2:
throw new NumberFormatException(); //Not required
case 3:
throw new RuntimeException(); //Not required
case 4:
throw new ClassNotFoundException(); //Required
case 5:
throw new IOException(); //Required
case 6:
throw new Exception(); //Required
default:
return;
}
}
RuntimeException
から継承していることに気付きましたException
。
RuntimeException
コンパイルするために明示的にキャッチする必要がないのはなぜExceptions
ですか?