授業中に作成したプログラムを片っ端から乗っけていきです。C++ を中心に掲載中。

11 例外処理

exception handling
プログラム実行中におきた“普通ではない”ことで、何か特別な処理が必要なことを例外(exception)と言う。
・ハードウェア(およびOS)で検出される例外:ゼロによる除算、メモリ保護違反、ファイルの終端まで読んだ、など。
・ソフトウェアで検出される例外:配列の添字が範囲外である、など。
・ユーザが定義した例外

例外が起きても、例外処理を行って実行を続けられるようにしたい。
例外処理を統一的に記述し、十告示に発生したエラーをより容易に管理することができる。

3つのキーワード
tryブロック
例外の発生を検出する。
throw文
tryブロック内で例外を検知すると、その例外コードがcatchに投げられる。tryブロック内から実行するか、ブロック内のプログラムコードから呼び出す関数内で実行する。
catch文
対応する例外を駆り引数として捕獲し処理する。tryブロックとcatch文は、同じブロック内にならなければならない。tryブロックに複数のcatch文を対応づけてもよい。対応するcatch文のない例外を投げるとプログラムは異常終了する。例外自体にアクセスする必要がない場合は、catch句で型だけを指定することもできる。
try{			// try ブロック
	例外を検出する処理
	throw 例外;
}
catch(型 arg){		// catch ブロック
	例外時の処理
}
#include<iostream>
using namespace std;

int main(){
	int num;
	cout << "1〜9間での数を入力せよ。\n";
	cin >> num;
	
	try{
		if(num<=0)throw "0以下の入力";
		if(num>=10)throw "10以上の入力";
		cout << num << "が入力されました。\n";
	}
	
	catch(char *err){
		cout << "エラー:" << err << "\n";
		return 1;
	}
	return 0;
}

1〜9までの数を入力せよ。
-1
エラー:0以下の入力

このページへのコメント

DfYppC Great blog article.Really looking forward to read more.

0
Posted by awesome things! 2014年01月23日(木) 03:02:06 返信

Zeia0H Really appreciate you sharing this article.Much thanks again. Will read on...

0
Posted by check this out 2013年12月20日(金) 22:36:39 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Creative Commons

Creative Commons License
この作品は、クリエイティブ・コモンズ・ライセンスの下でライセンスされています。

メンバーのみ編集できます