技術的なことから意味のないことまで、忘れたくないことをただ綴っていきます。今までに色々なシステムを見てきましたが、私が気になる事柄の一つにエラーメッセージがあります。一般向けでない業務システムでは、不適切なエラーメッセージが多々見受けられるように思います。そこで、今回はエラーメッセージをどのようにすればよいか考えてみます。Webシステムで、メールアドレスを利用者に入力してもらう画面があるとします。この入力フォームに利用者が間違えて全角で入力した場合に、今まで見てきたシステムで出力されたエラーメッセージを挙げ、その問題点を考察してみたいと思います。「内部でエラーが発生しました」というメッセージが画面に表示されるこのエラーメッセージは問題です。利用者がこのメッセージを読んで、どうすればいいのでしょうか。このようなエラーメッセージは、あまり詳細な設計がされたいないシステムや、あまりテストされていないシステムでよく見受けられます。いないエラーが発生した場合のエラー処理として、このようなエラーメッセージが使われることが多いように思います。ServletクラスでExceptionをキャッチしたら、とりえあえず上記のようなエラー画面に飛ばす等です。個人的には、プログラマが想定していないエラーが発生したら、それはもう不具合と同じだと思っています。「バリデーションエラー(mail)」というメッセージが画面に表示されるあまり利用者のことを考えていないプログラマがシステムを作った時に、こういうメッセージを表示していました。製作者は、利用全員が「バリデーション」の意味を分かると思ったのかもしれませんが、私はそうでないと思います。エラーメッセージは、あくまでも利用者の言葉で書くべきです。「メールアドレスが不正です」というメッセージが画面に表示されるよくあるエラーメッセージだと思いますが、このメッセージには解決策がありません。どのように直してよいか分からない場合があるはずです。間違いに気づかないかもしれません。「メールアドレスは@(アットマーク)を含む半角英数字で入力してください」というメッセージが画面に表示される私は、このエラーメッセージが一番わかりやすいと思いました。間違いの場所と解決策が書かれています。全角で入力した文字が半角に自動変換され、エラーが発生しないこの方法は場合によっては最良かもしれませんが、私はこの方法の使用には慎重になるべきだと考えています。将来マルチバイトのドメインが一般的に使われ始めた場合はどうするのでしょうか。この話題は今回の記事とは少し離れてしまいますので、別の機会に考えたいと思います。結論として、私はエラーメッセージは次のようなことに気をつけるべきだと考えています。・エラーの発生原因を示す・エラーの解決策を示す・メッセージには利用者が理解できる言葉を使う上記のポイントの他に、エラーメッセージの出し方を有名なサイトで研究するのもオススメです。Googleでキーワードに一致するサイトがない場合に、どのような画面になるでしょうか。色々なサイトでエラー画面を出して比較してみるのも面白いかもしれません。機会があれば、このブログでやってみたいと思います。