C# 您是否以句号结束异常消息?

C# 您是否以句号结束异常消息?,c#,exception,coding-style,message,C#,Exception,Coding Style,Message,我看到过有句点和没有句点的异常消息。我能想到为什么两者都好的一些原因 如果你愿意的话,没有一个点会给你自由添加句点或者省略句点。如果消息出现在某种标题栏或其他地方,可能会很有用 有了一个点,你就会知道你有一个“完整的句子”,而且看起来更完整 你推荐哪一个 本地化资源字符串中也可能存在问题。显然,你不能在每件事之后都加上句号(按钮和菜单项上的文本后面加上句号会显得很奇怪,等等)。但是,你是否应该从每件事中剔除这段时间以保持一致,然后在有用的地方添加它?或者你宁愿把一段时间放在合适的地方?例如,

我看到过有句点和没有句点的异常消息。我能想到为什么两者都好的一些原因

  • 如果你愿意的话,没有一个点会给你自由添加句点或者省略句点。如果消息出现在某种标题栏或其他地方,可能会很有用
  • 有了一个点,你就会知道你有一个“完整的句子”,而且看起来更完整
你推荐哪一个

本地化资源字符串中也可能存在问题。显然,你不能在每件事之后都加上句号(按钮和菜单项上的文本后面加上句号会显得很奇怪,等等)。但是,你是否应该从每件事中剔除这段时间以保持一致,然后在有用的地方添加它?或者你宁愿把一段时间放在合适的地方?例如,在所有作为句子的资源字符串和异常消息之后,而不是在作为单词的资源字符串和异常消息之后。那么,简短的句子呢?例如,“创建一个新文件”。也可以为被视为动作的字符串省略句点。。。(我在这里打字时只是在思考…)


我知道,这不是世界上最重要的事情,但像这样的小事往往会让我在一段时间后感到困扰。我喜欢连贯性,并想知道我为什么要做我所做的事情。问题是,我不确定该选哪一个:p

是的,我通常将异常消息视为完整的句子,以句号结尾

但是,异常中的消息是针对开发人员的,而不是针对最终用户的。根据调用异常抛出方法的上下文,同一底层异常很可能会为最终用户生成两条不同的消息


您真的应该向用户显示技术性较低、用户友好的消息。

我总是在异常描述中使用句点。简单的事实是,正确加标点的句子更容易阅读,看起来更专业,这对感知质量很重要——你不这么认为吗

将其与:

我总是在我的例外描述中使用句号。简单的事实是,正确标点的句子更容易阅读,看起来更专业,这对感知质量很重要,你不这样认为吗


框架中的异常消息以点终止;出于这个原因,我也倾向于这样做。

在任何情况下,选择一种风格并努力坚持下去……

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

异常消息构成应用程序开发人员界面的一部分。界面的设计通常是为了帮助用户执行某些特定任务。在出现异常的情况下,所提供的接口应设计为传递有关应用程序中发生的错误的信息

当您决定抛出一个异常并编写一行

throw new ArgumentException("The string must contain at least one character.");
然后,您已经做出了许多关于接口的决定,包括:

  • 异常类型
  • 缺少本地化异常消息(使用硬编码字符串通常意味着这一点)
  • 此异常不是任何其他条件的结果(无内部异常)
记住,开发人员界面是为开发人员服务的,用户界面是为用户服务的,前者的要求与后者大不相同,因此对一方有利的可能对另一方不利,因此,异常消息中的句点不应该与用户界面有关,因为它不应该对最终用户可见

在大多数情况下,使用一个周期不是一个主要的决定,但是你应该考虑它的存在(或缺少它)是否有益于或有害于界面,通过考虑已经提出的点,包括框架一致性和本地化。 我知道这篇文章有点罗嗦,可能有点,但我希望它能对你有所帮助

Q.您是否以句号结束异常消息?

从MSDN“创建和引发异常”一节中的†开始:

  • 使用语法正确的错误消息,包括结尾 标点符号。异常描述字符串中的每个句子 应该在一段时间内结束。例如,“日志表已溢出。” 将是一个适当的描述字符串
关于通过应用程序用户界面向用户提供的可能反馈,问题包括:

…也可能是本地化资源字符串中的一个问题。

上面提到的MSDN文章还指出:

  • 在每个异常中包含本地化的描述字符串。错误 用户看到的消息来自的描述字符串 引发的异常,而不是从exception类引发的异常
此外,从“备注”一节开头的†开始:

错误消息的目标是处理异常的开发人员 Message属性的文本应完整描述错误,并且, 如果可能,还应解释如何纠正错误。顶层 异常处理程序可能会向最终用户显示消息,因此您应该 确保语法正确,并且 邮件以句号结尾。请勿使用问号或感叹号 如果应用程序使用本地化的异常消息,则 应确保它们被准确翻译



†.NET Framework 4.6和4.5

我认为不向最终用户显示异常消息会使感知质量更高。@Anders--取决于您如何显示它。如果捕获并正确呈现给用户,异常可能看起来相当专业。未捕获?好吧,那只是一个崩溃!当我看到devel时,我真的很恼火感叹号只能用来表示情感,除非你有一个prett