【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#)のエラー処理についてを紹介しました。
作ったコードはこちらにあるのでぜひ遊んでみてください。(自己責任でお願いします。)