例外処理の蝶きほん

例外処理をしたいケースは2つ。

  1. 通常だとプログラムが停止するエラーでも停止しないようにする処理
  2. 「負の数はエラーにする」といった独自に設定したいエラーの処理

通常だとプログラムが停止するエラーを停止しないようにする処理

→try-catchを使う

  1. エラーが発生する可能性のあるぶぶんをtryでかこむ
  2. 発生を想定しているエラーが起きた時の処理(ハンドラ)をcatchにかく

例:キーボード入力のStringをintにキャストする

String str = br.readLine();
try {
	int no = Integer.parseInt(str);
} catch (NumberFormatException e) {
	System.out.println("数字をいれてよ");
}	

「負の数はエラーにする」といった独自に設定したいエラーの処理

  • 想定するエラーに対応したExceptionのサブクラスを作成
  • 作成したエラークラスからインスタンスを生成する
  • エラーにしたい条件が発生したら、エラーインスタンスを送出(スロー)する
  • スロー文をtryで囲む
  • 作成したクラスをキャッチするcacth文を追加する

例:負の数はエラーにする

int num = Integer.parseInt(br.readLine());
if(num < 0){
	try{
		throw new NoNullException();
	} catch(NoNullException e){
		System.out.println("数字をいれてよ");
	}
} else {
	//正の数におこなう処理
}