*独自の例外 [#vc7b77cb]
throwsステートメントを使い独自の例外クラスを作成することができます。~
RuntimeExceptionのサブクラス以外の場合は、作成した例外が発生する
可能性のあるメソッドすべてで独自の例外を捕獲する必要があります。~

''例''
#codeprettify{{
import java.util.*;

class ExceptionSubclass{
    public static void main(String args[]){
        a();
    }

    static void a(){
        try{
            b();
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    static void b() throws Exception{
        try{
            c();
        }catch(ExceptionB e){
            e.printStackTrace();
        }
    }

    static void c() throws ExceptionA, ExceptionB{
        Random random = new Random();
        int i = random.nextInt();
        if (i % 2 == 0){
            //独自例外ExceptionAを作成
            throw new ExceptionA("We have a problem");
        }else{
            //独自例外ExceptionBを作成
            throw new ExceptionB("We have a big problem");
        }
    }
}

//独自例外クラスExceptionA
class ExceptionA extends Exception{
    public ExceptionA(String message){
        super(message);
    }
}

//独自例外クラスExceptionB
class ExceptionB extends Exception{
    public ExceptionB(String message){
        super(message);
    }
}
}}

''結果''
 ExceptionA: We have a problem
         at ExceptionSubclass.c(exceptionsubclass.java:40)
         at ExceptionSubclass.b(exceptionsubclass.java:26)
         at ExceptionSubclass.a(exceptionsubclass.java:14)
         at ExceptionSubclass.main(exceptionsubclass.java:7)



トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS