掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
try〜catchを自分で処理するには? (ID:65023)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
・VC++.NET 2003 ・Windows XP SP2 ・Win32 アプリケーション(SDK) size.addValue() で ULONGLONG 型に数値を加算していき、 2^64-1 の値を加算しようとすると例外が発生するようになっています。 それでマウスを左クリックすると 12345 を加算するようなサンプルを作った。 try{ size.addValue( 12345 ); ←ERR_OVERFLOW 定数を throw する } catch( int no ){ if ( no == ERR_OVERFLOW ){ MessageBox( hWnd, TEXT("オーバーフローしました。"), TEXT("確認"), (MB_ICONWARNING | MB_OK) ); } else{ MessageBox( hWnd, TEXT("不明な例外エラーです。"), TEXT("確認"), (MB_ICONWARNING | MB_OK) ); } } 上記の処理で 12345 を加算していくとやがてオーバーフローを起こします。 なお、size.addValue() ではちゃんと例外が発生しています。ここは問題がない。 それで質問は、例外が発生するとメッセージボックスが表示されずに 『Microsoft Visual C++ Runtime Library』というダイアログが表示され[OK]ボタンを 押すとプログラムが強制終了します。なぜ、catch で例外を受け取れずに勝手なダイアログが 表示されて強制終了するのか分かりません。 catch で例外を受け取って自分でメッセージボックスを出したいのですが、 どうすればよいのですか? try〜catch は今回初めて使ってみました。 分かる方、お願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.