トップ回答者
アプリケーションの共通処理について

質問
-
村木と申します。はじめまして。
VB2005 ProffesionalでWindowsアリケーションを作成しています。
アプリケーションを作るにあたり、以下の処理を実装したいと考えています。
1.アプリケーションの開始・終了ログ
2.例外発生時の処理
→具体的には、エラーログ出力・メッセージボックス出力・プログラム終了
以前のVBではsub Mainに上記処理を記述していましたが、今回はVB2005なので
sub Main以外の方法で作成したいと思って、いろいろ調べてみました。
その結果、ApplicationEventのStartupイベントなどに記述すればできるようですが
この方法だとロジックが冗長するように思います。
プログラムが数十本あるので、同じロジックは冗長させたくないのです。
どのようにロジックを構成すればよいか教えていただけませんでしょうか?
よろしくお願いします。
回答
すべての返信
-
muraki さんからの引用 2.例外発生時の処理
→具体的には、エラーログ出力・メッセージボックス出力・プログラム終了
こちらについては Application.ThreadException イベント を利用すると処理を一箇所にまとめられます。
プログラム終了などは自分のアプリケーションでやった方が気持ち悪くないです。参考となるサイト:
適切に処理されなかった例外をキャッチするには? -
muraki さん、こんにちは。
muraki さんからの引用 おっしゃる通りなのですが、これですとプログラマーが呼び出し行を記述することを忘れたりする心配がないでしょうか? エントリ ポイントで Application.ThreadException のハンドラを紐付けするだけですよね。
(インターフェイスの "実装" が漏れる可能性はないのでしょうか? と言われた時のことを思い出しました)可能であれば、その1行さえも意識させたくないのです。 アスペクト指向にしたいということだと認識しました。
しかし、その仕組みを考える頭が私にはありませんです。例えばApplicationEvent自体を継承することは無茶な考えなのでしょうか? イベントを継承?
ごめんなさい、ちょっと意味がわかりませんでした。