fc2ブログ

(例外の)最終防衛ラインを引く

どんなに気をつけても、どんなにtry/catchをしても例外がアプリの外に漏れる事はある。
外に漏れる(未処理である)と、アプリが"落ちる"。それだけは避けたい!って時に実装(実行)するコード

Application.Current.DispatcherUnhandledException +=
new System.Windows.Threading.DispatcherUnhandledExceptionEventHandler(
ApplicationHelper.Current_DispatcherUnhandledException);

DispatcherUnhandledExceptionはイベントであり、未処理例外が発生した時に、イベントが励起される。
↓の記事がより詳しく書かれてますよ、はいOrz。
WPF アプリケーションの未処理の例外
この処理をしておけば、アプリそのものが落ちるってのは滅多にないんだけど…。
WPF4で困るのは、その例外情報(StackTrace)でさえエラーを特定できない時があるって事かな。
StackTrace情報がすべて、WPF内で始まり、WPF内で終わっているとかね…。
まあ、こっちのXAML記述が怪しかったりするんだろうけど、もうちょっと特定しやすい情報にしてくれと何度かおもった事がある。
(追記)
この未処理の例外が発生するという事について、キャッチするのではなく、あえて出しておいて、その時のデータを復旧させるなんて事をするパターンもあるらしい。
indows API Code Packによるアプリ開発 第2回 ~アプリケーションの再起動と修復 その1~
Windows API Code Packによるアプリ開発 第3回 ~アプリケーションの再起動と修復 その2~
Windows Code API Packが所有する機能の1つらしい。まあ、そのまま落ちられるよりは良いんだろうけど…。
スポンサーサイト



当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0


この記事へのコメント

コメントの投稿

非公開コメント


サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m