2009-07-16 6 views
39

私は、期間の有無にかかわらず例外メッセージを見たことがあります。そして、私は両方が良いことができる理由のいくつかの理由を考えることができます。例外メッセージの期間を終了しますか?

  • ドットを使用しないと、期間を追加したり、必要な場合は除外することができます。メッセージが何らかのタイトルバーなどで表示されていた場合に便利です。
  • あなたはいつも「完全な文章」を持っていたことを知っていて、それはもっと完成したように見えます。

どちらをお勧めしますか?

ローカライズされたリソース文字列の問題でもあります。明らかに、あなたはすべての後に期間を置くことができません(ボタンやメニュー項目のテキストの後に奇妙に見えるでしょう)。しかし、あなたは一貫性を保つためにすべてのものから期間を外して、後でそれを追加するべきですか?あるいは、あなたはむしろそれが合うと思われる期間を置くでしょうか?たとえば、すべてのリソース文字列や例外メッセージの後に、文章ではなく、それらの文章に続くものではありません。しかし、それでは、非常に短い文章はいかがですか?たとえば、「Create a new file」のようにします。おそらくここに入力している間に考えてみてください...

世界で最も重要なことではありませんが、私は知っています。問題は何のために行くのかわからない:p

答えて

38

はい私は通常、例外メッセージを完全な文章として扱い、それらを終了させます。周期であるが

、例外のメッセージが現像ためのもの、とされているないエンドユーザ。それはVできます例外が発生したメソッドが呼び出されたコンテキストによっては、同じ根底にある例外がエンドユーザーに対して2つの異なるメッセージを生成する必要があることに注意してください。

実際には、より技術的でユーザーフレンドリーなメッセージを表示する必要があります。

+7

+1 .NET Frameworkとの一貫性。 –

5

私は例外の説明に常にピリオドを使用します。単純な事実は、適切に区切られた文章は読みやすく、よりプロフェッショナルなものであり、知覚された品質にとって重要であると思いますか?

はそれを比較します。私はいつも私の例外の説明ではピリオドを使用する単純な事実が適切に中断されている文章が読みやすくし、探して、より専門的であることを知覚品質のために重要であるされている

あなたが

を思ういけません
+0

面白いイラストレーション。 –

+2

エンドユーザーに例外メッセージを表示しないと、認識される品質がさらに高くなります。 –

+0

はい、正確に小文字で区切られた文章では、コア・スピール・リレーの用量はlokk moore proesionall – Guffa

8

フレームワーク内の例外メッセージはドットで終了します。私はその理由で同じことをする傾向があります。
いずれにしても、スタイルを選択してそれに固執しようとします。

-1

最高の判断をしてください。私は時々感嘆符を使う。 :-)

+0

それは私が開発者がそれをするのを見て本当に私を悩ます。感嘆を示すために感嘆符を使用するのは、あなたがかわいいくそった友好的なアプリを持っていない限り、私はそれらを使用しません。 –

4

例外メッセージは、アプリケーションの開発者インターフェイスの一部です。インターフェイスは、一般的に、ユーザーが特定のタスクを実行するのを支援するために設計されています。例外の場合、提供されるインタフェースは、アプリケーション内で発生したエラーに関する情報を伝達するように設計する必要があります。

あなたが例外をスローし、

throw new ArgumentException("The string must contain at least one character."); 

のような行を記述することを決定した場合、あなたはすでに含めインタフェースに関する決定の数作られています

  • 例外の種類
  • 不足のをローカライズされた例外メッセージ(ハードコードされた文字列の使用は、通常これを意味します)
  • この例外は他の条件の結果ではありません例外)

前者が後者よりも大幅に異なる要件を持っているので、どのような1のために良いですが、他のために良いではないかもしれない、開発者インタフェースは、ユーザにサービスを提供するために、開発者やユーザーインターフェースを提供するために存在していることを覚えておいてくださいので、例外メッセージ内の期間は、エンドユーザーに表示されてはならないため、ユーザーインターフェイスには関係しません。

ほとんどの場合、期間の使用は重要な決定ではありませんが、フレームワークの一貫性とローカリゼーションを含む既に提起された点を考慮することによって、その存在(またはその欠如)がインタフェースに有益か否かを検討する必要があります。

私はこのポストがちょっと口語で、おそらく少しでもastronautyだと知っていますが、それがあなたに役立つことを願っています。

22

Q.期間を指定して例外メッセージを終了しますか? Best Practices for Exceptions&#x2020のから

。セクションのMSDNの「例外を作成し、引き上げ」:

  • は、 句読点を終了するなど、を文法的に正しいエラーメッセージを使用してください。例外 の説明文字列の各文は、ある期間で終了する必要があります。たとえば、「。ログテーブルがオーバーフローしました」 は、適切な説明文字列になり

とアプリケーションのユーザインタフェースを介して、ユーザーに可能なフィードバックについて、質問が含まれています:

は...また、ローカライズされたリソース文字列中に問題がある可能性があります。

また、述べて上記に参照MSDNの記事:

  • は、すべての例外でローカライズされた説明文字列を含めます。ユーザーが表示するエラー メッセージは、例外クラスからではなく、スローされた例外の説明文字列 から派生しています。Exception.Message Property&#x2020のからも

、。セクションの先頭に「備考」:

エラーメッセージは、例外を処理している開発者を対象としています。 Messageプロパティの テキストにエラーを完全に記述し、可能であれば にエラーを修正する方法を説明する必要があります。最上位の 例外ハンドラは、エンドユーザにメッセージを表示することがありますので、 は文法上正しく、 メッセージの各文はピリオドで終わることを確認する必要があります。疑問符や感嘆符 を使用しないでください。アプリケーションでローカライズされた例外メッセージが使用されている場合は、 が正確に翻訳されていることを確認する必要があります。


† .NET Framework 4.6と4.5

+2

正式な出典を参照した唯一の回答が投票数ゼロだったとは信じられません!これは、回答を「文書化する」というstackoverflowのガイドラインに従っているので、これを上書きする必要があります。 –

+0

さらに、ドキュメントをリンクするためのものです。 – gaspard

関連する問題