应该在哪里存储异常消息

时间:2009-01-23 21:12:56

标签: c# exception resources

由于我不能将Microsoft作为最佳实践的示例,因为它们的异常消息必然存储在资源文件中,因此我不得不询问应该在哪里存储异常消息。

我认为这可能是我想到的常见位置之一

  • 默认资源文件
  • 本地常量
  • 班级常数
  • 全局异常消息类
  • 内联为字符串文字

4 个答案:

答案 0 :(得分:16)

我可能会为此拍摄(好吧,投票),但为什么不“你在哪里创建例外”?

throw new InvalidDataException("A wurble can't follow a flurble");

除非您要将异常消息(which I suggest you don't)国际化,否则您是否特别需要将它们作为常量等?哪个好处?

答案 1 :(得分:1)

如果您的异常是强类型的,则无需担心消息。消息用于向用户显示错误,异常用于在特殊情况下控制流量。

throw new InvalidOperationException("The Nacho Ordering system is not responding.");

可能会成为

throw new SystemNotRespondingException("Nacho Ordering");

在后一种情况下,没有任何内容可以翻译,因此无需担心本地化。

答案 2 :(得分:0)

出于必要吗?这是为了简化本地化。要在应用程序中本地化错误消息,这是一个很好的方法。

答案 3 :(得分:0)

如果您不打算向用户显示异常消息,则需要将它们与您需要翻译的资源字符串分开。

使用像Jon建议的字符串文字,或者如果你有很多重复的字符串,可以创建一个实用程序类来保存它们。