前提
C#を書いているうちにふと思ったのでできるのかどうか試行錯誤しながら質問させていただきます。
実現したいこと
・別フォームから例外を取得して、例外処理を行う。
本来の例外処理の骨組み
C#
1private void 何かしらのイベント的なあれ() 2{ 3 try 4 { 5 //何かしらの例外発生 6 } 7 catch 8 { 9 return;//例外出たときに処理から外す。 10 }
これは明示的で読みやすいけど似たような処理(マージ不可)が何個もあるとエコな書き方ではないなと思っちゃう。
デザイナー側のコードで例外起きたらどう例外(ライセンス切れなどの例外)を取ろうかも考えてしまう(こっちが本題かも。)
やりたいこと
form1
C#
1private void ~~() 2{ 3 try 4 { 5 //なにかしらの例外が発生する。 6 } 7}
form2
C#
1private void ~~()//多分取得するための変数が必要? 2{ 3 catch 4 { 5 //form1の例外をキャッチする。 6 } 7} 8
前提条件としてはform1を親、form2が子です。
もしこれが実現可能なら複数の例外処理を一つにまとめられるのである程度コードの短縮ができるかなぁと思ってます。
もしできたらすごい便利...かな。
そもそも専用の例外があるかも?
詳しく調べて不可能と分かれば自己回答で質問を閉じさせていただきます。
もしわかる人がいましたら教えてくれると嬉しいです。
補足情報(FW/ツールのバージョンなど)
VisualStudioの最新版 C# .net フォームアプリケーション 最新版
> 前提条件としてはform1,2が同時に開かれている状態で、両方アクティブ状態です。
一般に複数のウィンドウ(フォーム)が開いているときに「アクティブ」と言うと、表示されているもののうちどれかひとつが入力可能な状態のものを指します。ここでいうアクティブとは要は、2つのフォームが表示されていることを指していますか? また、Form1からForm2を開くような親子、オーナーの関係ではなく、FormXからForm1、Form2を同時に開くような、Form1とForm2は兄弟の関係、でしょうか。
>Form1からForm2
親子関係でフォームを開いています。文章修正させていただきます。
あれ、質問自体終わってしまいましたね。
> もしこれが実現可能なら複数の例外処理を一つにまとめられるのである程度コードの短縮ができるかなぁと思ってます。もしできたらすごい便利...かな。
まぁ、何にせよ目先の便利さに目を奪われて進めると後で保守しづらい役に立たないコードになりがちです。
>保守しづらい役に立たないコードになりがち
たしかにそうですね、明示的な書き方が一番無難ですね。
回答2件
あなたの回答
tips
プレビュー