你是否用句点结束了异常消息?

时间:2009-07-16 10:57:20

标签: c# exception coding-style messages

我看过有和没有句号的两个异常消息。而且我可以想出为什么两者都可能是好的原因。

  • 如果您愿意,没有任何点可以让您自由添加句点或将其留下。如果消息出现在某种标题栏或其他内容中,则可能很有用。
  • 你会一直知道你有一个“完整的句子”,它看起来更完整。

你推荐哪一个?

也可能是本地化资源字符串中的问题。显然你不能在一切之后放一段时间(在按钮和菜单项等文本之后的句点看起来很奇怪)。但是,你是否应该把时间从一切都保持一致,然后在有用的地方添加它?或者你宁愿把它看作适合的时期吗?例如,在所有资源字符串和异常消息之后是句子,而不是在那些字之后。但那么,非常短的句子怎么样?比如“创建新文件”。也许可以省略被认为是行动的字符串的时间段...(只是在我在这里打字的时候想...

我知道,这不是世界上最重要的事情。但像这样的小事情会在一段时间后给我带来麻烦。我喜欢一致性,知道为什么我会这样做。问题是我不确定要去哪一个:p

6 个答案:

答案 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)

用你最好的判断。我有时也会使用感叹号。 : - )