我确信我已经在框架中的各种异常消息中看到了这一点。我从 MSDN 库中检查了以下页面,但找不到有关消息内容的太多指导:
Exception Throwing
错误消息设计
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 值的格式都是我在调试时跟踪错误有用的东西。
是否有已知的原因不包括在内?
用消息中的键重新抛出参数异常会被认为是不好的做法吗?我曾考虑过创建自己的异常子类,但我认为在这种情况下,使用内置异常类似乎是一个更好的选择。