例外処理は難しい。
しかし、例外をうまく処理すれば、エラーやバグの原因をすばやく突き止められるはず。
例外はただcatchしておけばよいっていうものでは無く、catchしたあとで誰に宛ててエラーメッセージを表示するかを考慮する必要がありますね。
Missileフレームワークの場合、例外は以下3つに分類されます。
1.ユーザーに宛てる例外
2.スクリプターに宛てる例外
3.プログラマーに宛てる例外
それぞれの名宛人の定義は、
1は、Missileフレームワークで作られたゲームをプレイしている人
2は、Missileスクリプトを記述する人
3は、Missileフレームワークをプログラミングしている人
です。
1は、ユーザーのシステム環境が原因で発生するエラーが主です。
例えば、DirectXのバージョンが古いとか、メモリが足りないなどが考えられます。
2は、スクリプトの記述ミスで発生するエラーです。
例えば、スクリプト中で存在しないファイルを指定した場合などが考えられます。
3は、Missileフレームワークのバグで発生するエラーです。
ぬるぽとかそれ系です。
ApplicationExceptionを継承して、UserExceptionとScriptRuntimeExceptionを用意します。
1は、キャッチして、UserExceptionをthrowします。例外メッセージには、ユーザーが読んで理解できるようなことを入れておきます。
2は、キャッチして、ScriptRuntimeExceptionをthrowします。例外メッセージには、スクリプトのバグの原因を突き止められるような内容を入れておきます。
3は、キャッチしないようにします。その方がVisualStudioでデバックしやすいからです。
そして、UserExceptionとScriptRuntimeExceptionをメイン画面のフォームでキャッチして、例外メッセージをダイアログボックスに表示します。そしてプログラムを終了させます。
こんな感じでいいかと思います。
0 件のコメント:
コメントを投稿