2
谁应该阅读Exception.Message(如果有的话)?
在设计异常时,我应该编写用户或开发人员应该理解的消息吗?谁真正应该是异常消息的阅读者? 我发现异常消息根本没有用,我总是很难编写它们。按照约定,异常的类型应该已经告诉我们为什么某些事情不起作用,并且自定义属性可能会添加更多信息,例如文件名,索引,键等。那么为什么在消息本身中重复它呢?自动生成的消息也可以执行此操作,它所必须包含的就是带有其他属性列表的异常名称。这和手写文本一样有用。 根本不编写消息,而是使用特殊的异常渲染器来处理可能创建于不同语言中的有意义的消息,而不是用代码对其进行硬编码,这会更好吗? 我被问到这些问题中的任何一个是否都可以回答我的问题: 如何编写好的异常消息 为什么许多异常消息不包含有用的详细信息? 我读过他们两个,但对他们的回答感到不满意。他们通常谈论用户,并着重于消息本身的内容,而不是收件人,事实证明,至少可以有两个用户:最终用户和开发人员。我永远不知道在编写异常消息时应该和哪个人说话。 我什至认为这条著名的消息根本没有任何真正的价值,因为它只是用不同的词来重复异常类型的名称,所以为什么还要费心编写它们呢?我可以完美地自动生成它们。 对我而言,异常消息缺乏读者的区分。一个完美的例外将需要提供至少两个消息版本:一个针对最终用户,一个针对开发人员。仅将其称为消息太笼统了。然后,应该用英语编写开发人员消息,但最终用户的消息可能需要翻译成其他语言。仅用一条消息是不可能实现所有这些的,因此异常将需要为最终用户消息提供一些标识符,正如我刚才所说的,该标识符可能以不同的语言提供。 当我阅读所有其他链接的问题时,我得到的印象是,异常消息的确是由最终用户而非开发人员阅读的……一条消息就像也要吃蛋糕一样。
27
design
exceptions