- PR -

【Windowsサービス】例外の一元管理について

1
投稿者投稿内容
baccarat
会議室デビュー日: 2006/12/20
投稿数: 2
投稿日時: 2006-12-20 00:01
いつもお世話になっております。
baccaratと申します。

現在、Windowsサービスの開発を行っているのですが、
例外の処理で質問がございます。

【システム構成】
プレゼンテーション層、ビジネスロジック層、データアクセス層の三階層にわかれています。

【実現したいこと】
下位層のデータアクセス層やビジネスロジック層で発生したExceptionをプレゼンテーション層の一箇所でキャッチして、Exceptionの内容によってログを出力したい。

【質問】
つまり、Global.asaxのようなアプリケーション(サービス)管理用のクラスが
Windowsサービスでもあるのでしょうか?

以上、よろしくお願いします。
よこけん
大ベテラン
会議室デビュー日: 2006/01/31
投稿数: 216
投稿日時: 2006-12-20 00:25
System.AppDomainクラスのUnhandledExceptionイベントにハンドラを登録します。

コード:

static void Main()
{
System.AppDomain.CurrentDomain.UnhandledException += new System.UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[] { new Service1() };

ServiceBase.Run(ServicesToRun);
}

static void CurrentDomain_UnhandledException(object sender, System.UnhandledExceptionEventArgs e)
{
System.Exception ex = e.ExceptionObject as System.Exception;
// ロギング
}



[ メッセージ編集済み 編集者: よこけん 編集日時 2006-12-20 00:26 ]
baccarat
会議室デビュー日: 2006/12/20
投稿数: 2
投稿日時: 2006-12-20 10:53
よこけんさんありがとうございます。

テストしてみたところ、下位層のExceptionがキャッチできるのを確認できました。

ありがとうございます。
1

スキルアップ/キャリアアップ(JOB@IT)