C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 28 を表示中)
■13353 / )  Form.Show()での例外をcatchするには
□投稿者/ E.S. (1回)-(2008/01/28(Mon) 16:23:07)

分類:[.NET 全般] 

こんにちは。

どうぞご教示ください。

Form1は、あるボタンが押されると、Form2とForm3を呼び出します。
(Form2/Form3とも、Showメソッドによる、モーダレスです。)

この、Form2/Form3において、例外が発生した場合に、
・Form2/Form3は、余計なことを考えずに、throwするだけにしたい。
  (作り手がバラバラのため、属人化した動きにならないように)
・別のどこかが、一か所でエラー画面を表示したい。
と考えています。

で、その例外をcatchする場所がなく困っています。
ShowDialog()で呼び出すなら、そのShowDialogをtry〜catchで囲えばいいのですが、
モーダレスを実現したいため、Showを利用しています。
現状では、Application.Runをtry〜catchで囲って拾っていますが、
そうなると、Form2が例外をthrowしたときに、一緒にForm3まで閉じてしまいます。

やりたいこと
・モーダレスで各Formを呼び出ししたい。
・例外が発生してFormを閉じるのは、その例外を発生させたFormだけがよい。
・各Formではエラー画面を表示させる記述をしたくなく、throwするだけにしたい。

今のところ、Form2/Form3についてスレッドを生成してShowDialogにする方法を検討しているのですが、
他にうまい方法がないものか模索中です。

よい方法等あれば、どうか教えてください。

返信 編集キー/


管理者用

- Child Tree -