我看过有和没有句号的两个异常消息。而且我可以想出为什么两者都可能是好的原因。
你推荐哪一个?
也可能是本地化资源字符串中的问题。显然你不能在一切之后放一段时间(在按钮和菜单项等文本之后的句点看起来很奇怪)。但是,你是否应该把时间从一切都保持一致,然后在有用的地方添加它?或者你宁愿把它看作适合的时期吗?例如,在所有资源字符串和异常消息之后是句子,而不是在那些字之后。但那么,非常短的句子怎么样?比如“创建新文件”。也许可以省略被认为是行动的字符串的时间段...(只是在我在这里打字的时候想...
我知道,这不是世界上最重要的事情。但像这样的小事情会在一段时间后给我带来麻烦。我喜欢一致性,知道为什么我会这样做。问题是我不确定要去哪一个:p
答案 0 :(得分:45)
是的我通常将异常消息视为完整句子,以句点结束。
但是,异常中的消息适用于开发人员,而不适用于最终用户。很可能相同的底层异常应该为最终用户产生两个不同的消息,具体取决于调用异常抛出方法的上下文。
你真的应该向用户展示技术性更强,用户友好的消息。
答案 1 :(得分:31)
问。您是否以句点结束了异常消息?
来自MSDN上Best Practices for Exceptions †的"创建和提出例外"
部分
- 使用语法正确的错误消息,包括结尾 标点符号即可。描述字符串中的每个句子都是异常 应该在一段时间内结束。例如,"日志表已溢出。“ 将是一个适当的描述字符串。
关于通过应用程序用户界面对用户的可能反馈,问题包括:
...也可能是本地化资源字符串中的问题。
上面引用的MSDN文章还指出:
- 在每个例外中包含本地化描述字符串。错误 用户看到的消息是从描述字符串派生的 抛出的异常,而不是异常类。
此外,在本节开头的Exception.Message Property †"备注":
错误消息针对正在处理异常的开发人员。该 Message属性的文本应该完整地描述错误, 在可能的情况下,还应该解释如何纠正错误。顶层 异常处理程序可能会向最终用户显示消息,因此您应该这样做 确保它在语法上是正确的并且每个句子都是 消息以句点结束。不要使用问号或感叹号 点。如果您的应用程序使用本地化异常消息,那么 应确保准确翻译。
† .NET Framework 4.6和4.5
答案 2 :(得分:8)
框架中的异常消息以点终止;因为这个原因,我倾向于这样做 无论如何,选择一种风格并尝试坚持......
答案 3 :(得分:6)
我总是在我的异常描述中使用句点。一个简单的事实是,正确标点的句子更容易阅读,看起来更专业,这对于感知质量很重要 - 你不觉得吗?
将其与:
进行比较我总是在我的异常描述中使用句点,简单的事实是,正确标点的句子更容易阅读,更专业的外观,这对于感知质量很重要,你不认为
答案 4 :(得分:4)
异常消息构成应用程序开发人员界面的一部分。接口通常设计为帮助用户执行某些特定任务。在例外情况下,提供的接口应设计为传达有关应用程序中发生的错误的信息。
当您决定抛出异常并写一行
时throw new ArgumentException("The string must contain at least one character.");
然后你已经做了很多关于界面的决定,包括:
请记住,开发人员界面的存在是为开发人员和用户界面提供服务的用户,前者的要求与后者有很大不同,所以对一个人有好处可能对另一个人不利,所以在异常消息中有一段时间不应该关注用户界面,因为它不应该对最终用户可见。
在大多数情况下,使用期限并不是一个主要决定,但是您应该考虑已经提出的要点(包括框架一致性和本地化),是否存在(或缺乏)对界面有益或有害。
我知道这篇文章有点罗嗦,可能还有点astronauty,但我希望它对你有所帮助。
答案 5 :(得分:0)
用你最好的判断。我有时也会使用感叹号。 : - )