質問

エラーメッセージに関する一般的なコンセンサスは何だろうと思っていました。どのくらい詳細にすべきですか?

私は、大きすぎる、小さすぎる、小数、文字列などの数値を入力するためのさまざまなエラーメッセージが表示されるプロジェクトに取り組んできました。事態はうまくいきませんでしたが、エラー処理コードは実際のビジネスロジックのサイズに匹敵し始め、独自のバグのいくつかを開発し始めました。

反対側では、次のような非常に一般的なエラーが発生するプロジェクトに取り組みました

  

コンパイルに失敗した理由3

理由3がリンクエラーを意味することが判明したため、言うまでもないことはほとんどまったく役に立ちませんでした。

では、中間点はどこですか?十分な説明的なエラーメッセージを追加したかどうかを確認するにはどうすればよいですか?ユーザーがどこで問題が発生したかを理解できるかどうかを知るにはどうすればよいですか?

役に立ちましたか?

解決

エラーメッセージの対象となる対象ユーザーは、ユーザーと開発者の2つです。

通常は、ユーザーをターゲットとしたメッセージが必要です。

o問題の原因は何ですか。
 oプログラムが問題を回避できない理由
 oユーザーが問題を回避するためにできること。
 o問題の報告方法。

問題を報告する場合、報告には可能な限り多くのプログラムコンテキスト情報を含める必要があります。

oモジュール名
 o関数名
 o行番号
 o問題の一般的な領域に関心のある変数
 oおそらくコアダンプです。

正しいオーディエンスをターゲットにします。

他のヒント

可能な限り少ない言葉で、何が起こったのか、ユーザーの選択肢は何なのかを伝える必要があります。エラーメッセージが長いほど、ユーザーが読む可能性は低くなります。同様に、短いエラーメッセージは不可解で役に立たない。長さの点でスイートスポットがあり、状況ごとに異なります。

短すぎる:

  

無効な入力。

長すぎる:

  

192.168.0.1など、正しくフォーマットされたIPアドレスを入力してください。 IPアドレスは、ネットワーク上のコンピューターを識別するために使用される番号です。

ちょうどいい:

  

有効なIPアドレスを入力してください。

コードの肥大化に関する限り、少し余分なコードを追加することでユーザーがサポートに電話したり、不満を感じたりするのを防ぐことができれば、それは良い投資です。

エラーメッセージには、ユーザーに表示されるものとプログラマに表示されるものの2種類があります。

"ユーザーがどこに問題が発生したかをユーザーが理解できるかどうかを知るにはどうすればよいですか?" これらのメッセージはユーザーにのみ表示されるもので、あまり技術的なものではなく、 COMPILE FAILED REASON 3 は典型的なエンドユーザーエラーメッセージではないと想定しています。プログラマーが見るものです(ユーザーは通常コンパイルしません)。

したがって、表示されるのがユーザーの場合:

  1. 短い"これはエラーメッセージです"(" Ops!Something wrong!"など)
  2. エラーの小さな一般的な説明を提供します(「接続しようとしているサイトは利用できないようです」/「/」「XYZタスクを実行するための十分な権限がないようです」など)
  3. " Details>>"を追加しますユーザーが詳細情報(例外スタックトレース、エラーコードなど)を含むコンピューターをよく理解している場合に備えて、ボタン

最後に、シンプルでわかりやすいコマンドをユーザーに提供します(「再試行」、「キャンセル」など)

エラーメッセージに関する本当の問題は、エラーメッセージを表示する必要があるかどうかです。多くのエラーメッセージがユーザーに表示されますが、それらを修正する方法はありません。

エラーを修正する方法がある限り、ユーザーが自分で修正できる十分な情報をユーザーに提供します。自分で修正できない場合、クラッシュの技術的な理由を伝える理由はありますか?後でトラブルシューティングするためにファイルに記録するだけではありません。

必要に応じて詳細に;;

それは賢明な回答のように聞こえますが、これはターゲットオーディエンスとエラーの種類に大きく依存します。無効なユーザーエントリが原因のエラーについては、有効なエントリを構成するものを表示できます。ユーザーが制御できないエラーについては、一般的な「私たちは現在取り組んでいます」メッセージを入力します。

長さに関するJon Bのコメントにも同意します。

エラーメッセージは詳細である必要がありますが、明確でなければなりません。これは、複数のレベルのエラーメッセージを組み合わせることで実現できます。

Failed to save the image
Permission denied: /foo.jpg

ここには2つのレベルがあります。もっとあります。最初に全体像を伝え、次に詳細を伝えます。順序は、最初にほとんどの人が理解する部分があり、次にあまり理解されていない部分がありますが、両方がまだ見えるようになっています。

さらに、修正案があります。

詳細については誤解しますが、あなたはあなた自身の質問に答えたと思います。コードの肥大化を避けるために、コード/エラーメッセージで有用な情報を提供しますが、おそらくドキュメントで、またはヘルプファイルまたはFAQで詳細を提供できます。

情報が少なすぎるというのは私の意見ではもっと悪い。

豊富なイントロスペクションまたはその他の機能を備えた言語を使用している場合、チェックに失敗した行のログが役立ちます。その後、ユーザーはテクニカルサポートに転送するか、詳細情報を取得できます。これは追加のコード肥大化ではなく、独自のコードを使用して情報を提供します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top