■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にする方法を検討しているのですが、 他にうまい方法がないものか模索中です。
よい方法等あれば、どうか教えてください。
|
|