【C#】エラーと例外の処理を使ったWPFアプリ

WPFアプリケーション(C#)で扱える例外処理(エラー処理)は try / catch です。try は実際に処理させたい内容、catch は処理させようとしてエラーが発生した場合に処理させたい内容を書きます。

try 
{
    //処理させたい内容
} 
catch {
    // try でエラーが発生した場合の処理
}

これを用いることで、アプリケーションの強制終了(いわゆる応答なし)状態を回避することができます。つまりは「エラー処理をした」が正常な状態であるとなるので、アプリは動き続けます。

それほど難しくない実装なので、エラーが起きそうな箇所に保険として書いておくと良いです。if 文でエラーをたくさん書きだしてごり押しするという手もありますが、catchでは素晴らしいクラスがありまして...

catch(Exception){ }

そう、Exception クラスです。これを使えば大抵のエラーを検知して回避させることが可能です。しかも、これを引数にすれば、そのままエラー内容を表示させることも可能です。つまりは...

catch(Exception exception){ 
    MessageBox.Show(exception.ToString());
}

とすることが可能です。素晴らしいですね!

今回はこれを意識しました。確保する配列数を、書き込むデータ数が上回ってセギュメンテーション違反になるのを意図的に作り出せるアプリを作りました。

確保する配列数と書き込むデータ数を選択し、書き込むボタンをクリックすると...

確保した配列の要素に対して書き込まれたデータがメッセージで表示されます。しかし、要素数を超えてしまうと...

このように catch が Exception を受け取り、エラー処理に回してくれます。後は画像の通り、エラー時の対処を記述するだけです。なんて親切設計なのでしょうか!

今回はWPFアプリ(C#)のエラー処理についてを紹介しました。
作ったコードはこちらにあるのでぜひ遊んでみてください。(自己責任でお願いします。)

この記事が気に入ったらサポートをしてみませんか?