2009-08-04から1日間の記事一覧

型に関係なくcatchする

C++

http://www.geocities.jp/ky_webid/cpp/language/025.htmlエラーの種類に関わらずエラー処理を行いたい場合もあると思います。例えばエラーが出たらexitする処理を書きたいとして #include <iostream> using namespace std; int main () { try { // 何かしらのエラーが</iostream>…

catchに渡された値の名前は省略可能

C++

http://www.geocities.jp/ky_webid/cpp/language/025.html例えば下記のような処理 int main () { try { throw "error"; } catch ( const char* err ) { exit(1); } return 0; } コンパイルするとerr変数を定義したのに一度も使われていないという警告がでる…

例外仕様

C++

http://www.geocities.jp/ky_webid/cpp/language/025.htmlここはちょっとややこしいです。 例外仕様の正しい取扱いはかなり難しいと言わざるを得ません。多くの人がイメージするような挙動ではない(例外仕様に記述していない例外も、catch はできないが発生…

25章 例外機構

C++

http://www.geocities.jp/ky_webid/cpp/language/025.html例外の処理です。前回にちょろっと出てきましたね。tryブロックで囲ったスコープ内でエラーが発生したら、そのエラーの種別毎にcatchブロックで処理を続行させることができます。まずはシンプルな例…

正規表現を実装する 第四回「NFAとDFA」

正規表現を実装する 第一回「リテラル」 - (void*)Pないと 正規表現を実装する 第二回「任意の一文字」 - (void*)Pないと 正規表現を実装する 第三回「?量化子」 - (void*)Pないと さて第三回のときに次はリファクタリングしますとは言ったのものの、どうも…

例外クラス

C++

http://www.geocities.jp/ky_webid/cpp/language/025.htmlthrowには実質どんな型でも渡せるので当然自分で作ったクラスを渡すこともできます。 #include <iostream> using namespace std; class CError { public: void print () { cout << "error" << endl; } }; int m</iostream>…