java入門 第16回 例外処理

第16回のポイント 

例外(Exception)

プログラムの実行時に発生する、コンパイルの時点では想定できなかったエラー→実行時エラー 実行時エラー発生時、例外処理で対処を行う

try〜catch文

tryブロック内で例外を監視する
catchブロック内で例外発生時の処理を記述する
catchブロックは複数定義できる
finallyブロックは例外発生の有無にかかわらず必ず実行されるブロック

例外の送出

 メソッド名にthrows修飾子を付けて定義する 例外オブジェクトを作成し、throw文で例外を送出する 

googleドライブ上にこの講座のプログラムコード、スライドデータを置いています。 https://drive.google.com/folderview?id=0B7jeGhcD18UYM0JtUG8xQm1CeU0&usp=sharing 

以下は実際にビデオの中で作成したプログラムです。

public class Study16 {
 public static void main(String[] args) {
  String status="正常終了";
  try{
   int[] a = new int[10];
   a[10]=10;
   
  }catch(Exception e){
   status="異常終了";
   System.out.println(e+"の例外が発生しました。");
  }finally{
   System.out.println(status);
  }
 }
}

//-------------------------------------------------------
public class Study16_1 {
 public static void main(String[] args) {
  Age a = new Age();
  try{
   a.setAge(-1);
  }catch(Exception e){
   System.out.println(e);
   System.out.println("例外発生");
  }finally{
   System.out.println("プログラム終了");
  }
 }
}
//例外オブジェクの作成
class AgeException extends Exception{
 
}
 
}
//年齢クラス
class Age{
 private int age;//年齢
 void setAge(int age) throws AgeException{
  if(age<0){//年齢がマイナスの場合
   AgeException e = new AgeException();
   throw e;
  }
  this.age=age;
  System.out.println("年齢を"+age+"にセットしました。");
 }
}