@634

例外をスローするメソッドのオーバーライド

Advertisement

基底クラスの作成

まず、元となるクラスを作成する。このクラスはthrowException()メソッドが呼ばれるとIOExceptionをスローする。

Baseクラス
import java.io.IOException;

public class Base{
    public void throwException() throws IOException{
        throw new IOException();
    }
}

同じ例外

同じ例外をスローするメソッドでオーバーライドしてみる。
ThrowEqualクラス
import java.io.IOException;

public class ThrowEqual extends Base{
    public void throwException() throws IOException{
        throw new IOException();
    }
}
コンパイルエラーも実行エラーもなし。

例外をスローしない

例外をスローしないメソッドでオーバーライドしてみる
public class NoThrow extends Base{
    public void throwException(){}
}
こちらもコンパイルエラーも実行エラーもなし。

互換性のない例外をスローする

基底クラスでスローしている例外と互換性のない例外をスローするメソッドでオーバーライドする。
public class ThrowOther extends Base{
    public void throwException() throws CloneNotSupportedException{
        new CloneNotSupportedException();
    }
}

コンパイルエラー
Method throwException()
クラスTrowOtherはmethod throwException()クラスBaseを上書きできません。
上書きされるメソッドはjava.lang.CloneNotSupportedExceptionをスローしません
行4

Advertisement

ショートカット

634
このカテゴリのトップページに戻る
634labs
   UIコレクションギャラリー

サイト検索

Google

Web サイト内

Y!ログール