プログラムで難しいことの3つは
- テスト
- ログ
- エラーハンドリング
とかいてきましたが、ユーザー側に見せるエラーメッセージについて考察して見ました。
ログとエラーメッセージの違い
ログに出すようなメッセージを画面側に出してしまうことがあるのですが、ターゲットと用途が全く異なってきます。
ログ
ターゲット
システム開発者
目的・意図
システム内の異常を見ること
出すべき情報
Exceptionのエラーメッセージなどシステム内に関わるできるだけ詳細なメッセージや異常。
エラーメッセージ
ターゲット
一般ユーザ
目的・意図
不足している行動を知らせる(未入力の情報があるなど)、サポート側に問い合わせた時に鍵となる情報
出すべき情報
不足している行動や問い合わせた時に必要となるコード番号
ユーザに出す情報として必要な観点として、まずユーザー自身の行動を変えることができるかという点です。
画面内の未入力の情報などでしたら、意味がありますが、例えばDBの詳細なエラーを出したところでユーザーはシステム内の仕様を知らないし、変えることもできませんから意味がありません。
この場合、システム内のエラーになりますので、問い合わせてもらうしかないのですが、かといって「システムエラーが発生しています」だとサポートする側に回ると詳細な調査に時間がかかります。
この場合やはりエラーコードなどを仕込んで置いて「システムエラーです。エラーコードEX00012が発生しています。お問い合わせ先は・・・などとしておくのが一番無難でしょう。」