第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+"にセットしました。");
}
}
0 件のコメント:
コメントを投稿