はじめまして。マグロと申します。
現在「VC++.NET 2003 」でコマンドを作成しているのですが、実行
中に何らかのバグによりRuntimeErrorのポップアップが出力されて
しまいます。
try〜catchを利用してアプリケーションエラーをキャッチし抑止、
制御まではできたのですが、RuntimeErrorのポップアップは抑止、
制御ができません。
RuntimeErrorのポップアップを抑止制御するにはどうしたら良いで
しょうか?
ご存知の方がいらっしゃいましたら、ご教授下さい。
要するにバグっているわけだから、バグ修正するだけぢゃん。
編集 削除tetrapod様
ありがとうございます。
仰るとおりバグを修正すれば良いのですが、他の部分にまだ発見
できていないバグが存在した場合の保険をかけたいのです。
作成しているコマンドは何が原因であれ失敗なら失敗で良いので
終了まで行ってもらわないと困るのです。
(OK押すまで処理が止まってしまうのは困るのです。)
(ちなみにRuntimeErrorの原因は既に判明し修正も完了していま
す。)
意味分からん。単に君が「この方法しかない」と思い込んでいるだけで、実は他にもっといい解決方法があるだけの話だと思う。
編集 削除Runtime Error!! のメッセージが表示されないようにすることよりも、それを出
さないよう一つ一つバグを修正することが最も大切なのでは?
その様なエラーが出ると言うことは、結構致命的なバグであることが多いと思う
のですが、それを無視してプログラムを動作させようとしてる?
それって、危険じゃないですか?
まずはそう言うエラーがでたら一つ一つ潰していく・・・という積み重ねが信頼
性の高いプログラムを作る近道だと思うんですけどね・・・。
> 作成しているコマンドは何が原因であれ失敗なら失敗で良いので
> 終了まで行ってもらわないと困るのです。
失敗なら即座に落ちてもらわないと困る、という考え方もあります。
たとえば、落ちずに無理やり継続した結果、ファイルを破損するとか、データベースに変なデータが入るとか、ちょっと大げさなケースですと、脆弱性を悪用されてウィルスを媒介する踏み台にされ得る、とか。
「落ちるということは安全である」という考えを持たれてはどうでしょうか。
望ましい順に列挙すると(上の方が望ましい状態です)
「バグがなく、落ちない」
「バグがあり、落ちる」
「バグがあり、落ちない」
になります(バグがなく落ちるということはないか、対処のしようがない不可抗力でしょうから除外します)。
> try〜catchを利用してアプリケーションエラーをキャッチし抑止、
> 制御まではできたのですが、RuntimeErrorのポップアップは抑止、
> 制御ができません。
>
> RuntimeErrorのポップアップを抑止制御するにはどうしたら良いで
> しょうか?
catch(int)で受け取る例外にenum型などを使っていませんか?
僕も去年に同じようなエラーダイアログが出ました。
throwにenum型ではなく記号定数に置き換えたら直りました。
こちらで質問して教えてもらいました。
僕が思いついたのはこれだけです。