フレームワークのさまざまな例外メッセージでこれを見たことがあると確信しています。MSDN ライブラリから次のページを確認しましたが、メッセージの内容に関するガイダンスはあまり見つかりませんでした。
例外をスローする
エラー メッセージの設計
Exception.Message プロパティ
それを説明できる最初のページの唯一の部分は、次のテキストです。
適切な権限を要求することなく、例外メッセージで機密情報を開示しないでください。
この問題を思い出させたのはDictionary<TKey, TValue>.Add メソッドによってスローされた ArgumentExceptionです。次のようになります。
System.ArgumentException : An item with the same key has already been added.
なぜこのように見えないのですか?
System.ArgumentException : An item with the same key(123) has already been added.
これは、123 が TKey 値であると仮定しています。基本的に、TKey 値を持つ任意の形式は、デバッグ中にエラーを追跡するのに役立つものです。
これが含まれていない既知の理由はありますか?
メッセージ内のキーを使用して引数例外を再スローすることは悪い習慣と見なされますか? 私は独自の例外サブクラスを作成することを検討しましたが、これは組み込みの例外クラスを使用する方が良い選択肢のように思われる場合だと思います。