由于我不能将Microsoft作为最佳实践的示例,因为它们的异常消息必然存储在资源文件中,因此我不得不询问应该在哪里存储异常消息。
我认为这可能是我想到的常见位置之一
答案 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建议的字符串文字,或者如果你有很多重复的字符串,可以创建一个实用程序类来保存它们。