例外の特定|Javaから楽しく学ぶ!ゲームプログラミング専門学校

Javaから楽しく学ぶ!ゲームプログラミング専門学校

ゲームプログラミングとはその名のとおりゲームのプログラムを作ることを指します。『Javaから楽しく学ぶ!ゲームプログラミング専門学校』ではゲームプログラミングについて、実際にゲームプログラムをJAVAプログラミング言語を使用し、作成していきながら詳しく解説していきます。

例外の特定

プログラム実行中に起きえる例外の種類はたくさんあります。
例外の正体

それら全ての例外で共有する例外処理を用意するより、実際に発生した例外に対する例外処理を用意した方が、より良い例外処理にすることができるはずです。

Javaでは、発生した例外を特定する手段が用意されており、例外ごとに例外処理を実装することが可能です。
public class ArrExpSample{
public static void main(String[] args){
try{
int a[];
a = new int[10];

a[10] = 500;
System.out.println("a[10]には" + a[10] + "が格納されています。");
}catch(ArrayIndexOutOfBoundsException e){
System.out.println(e + "という例外が発生しました。");
}catch(Exception e){
System.out.println("その他例外が発生しました。");
}
}
}

【実行結果】
java.lang.ArrayIndexOutOfBoundsException: 10という例外が発生しました。


上記サンプルを実行すると例外が発生しArrayIndexOutOfBoundsExceptionを引数としたcatchブロック内の処理が実行されます。
        try{
………
a = new int[10]; //a[0]〜a[9]までの10個の要素を定義

a[10] = 500; //a[10]は定義していないので例外が発生
………
}catch(ArrayIndexOutOfBoundsException e){
System.out.println(e + "という例外が発生しました。");
}………
tryブロックで例外が発生すると処理はcatchブロックに移りますが、catchブロックを複数定義している場合、プログラムはその例外に対応するcatchブロックがないか探します。
上記サンプルの場合、発生した例外はArrayIndexOutOfBoundsExceptionなので、引数をArrayIndexOutOfBoundsExceptionとしたcatchブロック内の処理が実行されることになります。
そして、このcatchブロックには、ArrayIndexOutOfBoundsExceptionが発生したとき、つまり、配列の添字が要素数を超えてしまったときの対処処理(例外処理)を書いておきます。

        try{
………
}catch(ArrayIndexOutOfBoundsException e){
………
}catch(Exception e){
System.out.println("その他例外が発生しました。");
}
もう一つのcatchブロックでは、Exceptionが発生したときの処理を書いています。
Exceptionは、あらゆる例外をキャッチできます。

このように、発生した例外の種類をプログラム側で知ることで、その例外に対する対処処理を用意しておくことができるのです。
トラックバック:0Edit
Copyright © Javaから楽しく学ぶ!ゲームプログラミング専門学校 All Rights Reserved.
当サイトのテキストや画像等すべての転載転用・商用販売を固く禁じます