Home > WPF > [WPF] 未処理例外をキャッチ

[WPF] 未処理例外をキャッチ

プログラム実行中に意図しないエラーでアプリが落ちることがありますが、落ちる前に終了処理を行いたいような場合もあるかと思います。
(ログ出力やメッセージによるエラー原因表示など)
 

本来であれば各処理ブロックにtry-catchを入れて都度エラー処理を行うべきですが、実際に開発をしていると漏れが出てくることもチラホラ。

そこで、未処理の例外を確実にキャッチする方法を紹介したいと思います。
 

未処理例外を捕まえる

ApplicationクラスにDispatcherUnhandledExceptionというイベントが用意されています。
このイベントは未処理の例外発生時に通知されるものです。

まず、XAMLでイベントハンドラを設定します。

<Application
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    x:Class="Hoge.App"
    StartupUri="Window1.xaml"
    DispatcherUnhandledException="OnDispatcherUnhandledException">  
    <Application.Resources>

    </Application.Resources>
</Application>

 

これで未処理例外発生時に OnDispatcherUnhandledException() が呼び出されることになります。
App.xaml.cs に OnDispatcherUnhandledException() を追加し、メソッド内に任意の処理を実装します。

private void OnDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
    //==== メッセージ表示 ====//
    MessageBox.Show(e.Exception.Message);

    //==== イベント処理完了 ====//
    e.Handled = true;
}

 
 

関連があると思われる記事:

このエントリーをはてなブックマークに追加
はてなブックマーク - [WPF] 未処理例外をキャッチ
Facebook にシェア
[`google_buzz` not found]
[`yahoo` not found]
[`livedoor` not found]
[`friendfeed` not found]
[`tweetmeme` not found]
[`grow` not found]

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://gacken.com/wp/program/wpf/1805/trackback/
Listed below are links to weblogs that reference
[WPF] 未処理例外をキャッチ from ミライニトドケ

Home > WPF > [WPF] 未処理例外をキャッチ

Search
Feeds
Meta
人気の記事

Return to page top