////////////////////////////////////////////////////////////////////////////////
//  << j261d.java >>
//
//  クラス(6):例外(自作の例外処理)
//
//    自作の例外クラス(MyException)をExceptionクラスの子クラスとして作成する。
//
//  自作の例外処理を確認する。
//
//  (1)自作の例外クラス。
//  (2)tryブロック
//  (3)throw文で例外を送出する。
//    (4)catchブロック:Exception
//  (5)finallyブロック
//
////////////////////////////////////////////////////////////////////////////////

class MyException extends Exception { //(1)
  MyException() { // コンストラクタ。
    System.out.println("自作例外クラスが呼び出されました");
  }
}

class j261d {
  public static void main(String args[]) {

    System.out.println("プログラム開始");

    try { //(2)
      System.out.println("(1)tryブロック開始");
      MyException e = new MyException();
      throw e; //(3)

    } catch ( Exception e ) { //(3)
      System.out.println("(3)catchブロック(Exception)開始");
      System.out.println(e); // エラーの詳細を表示。
      System.out.println("(3)catchブロック(Exception)終了");

    } finally { //(4)
      System.out.println("(4)finallyブロック開始");
      System.out.println("(4)finallyブロック終了");
    }

    System.out.println("プログラム終了");

  }

}
実行結果
% javac j261d.java
% java j261d
プログラム開始
(1)tryブロック開始
自作例外クラスが呼び出されました
(3)catchブロック(Exception)開始
MyException
(3)catchブロック(Exception)終了
(4)finallyブロック開始
(4)finallyブロック終了
プログラム終了