【发布时间】:2011-12-12 15:28:57
【问题描述】:
我注意到大多数异常消息不包含特定于实例的详细信息,例如导致异常的值。他们通常只会告诉您错误的“类别”。
例如,当尝试使用 3rd 序列化对象时。派对图书馆,我收到了带有消息的 MissingMethodException:
“没有为此对象定义无参数构造函数。”
在很多情况下这已经足够了,但通常(通常在开发过程中)类似
的消息“没有为这个'Foo'类型的对象定义无参数构造函数。”
可以通过直接引导您找到错误原因来节省大量时间。
InvalidArgumentException 是另一个例子:它通常告诉你参数的名称,而不是它的值。 大多数框架引发的异常似乎都是这种情况,但也适用于 3rd 方库。
这是故意的吗?
暴露内部状态(如变量的“错误”值)是否存在安全隐患?
【问题讨论】:
-
我感受到你的痛苦。 “在字典中找不到键”是另一个让我发疯的词。哪个键!?