我们通过将Exception.Message写入文件来记录系统中发生的任何异常.但是,它们是在客户的文化中写成的.而土耳其的错误对我来说意义不大.
那么如何在不改变用户文化的情况下用英语记录任何错误消息呢?
我的Visual Studio 2005是法语版,安装在法语操作系统上.我在调试或运行时收到的所有异常也都是用法语获得的.
但是,我可以做一些异常消息是英文的吗?对于护目镜,讨论等
我尝试了以下方法:
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
throw new NullReferenceException();
Run Code Online (Sandbox Code Playgroud)
获得
你调用的对象是空的.
这当然很酷......但是,当我在法国项目上工作时,我不会硬编码强制Thread.CurrentUICulture为英文.我希望英语更改仅在我的本地计算机上,并且不要更改项目属性.
是否可以在不修改应用程序代码的情况下设置异常语言?
在VS 2008中,将工具 - >选项 - >环境 - >国际设置 - >语言设置为"英语"wnd抛出相同的异常获取ex message en French,但是: alt text http://lh4.ggpht.com/ _1TPOP7DzY1E/S1V62xcvHAI/AAAAAAAAC7o/ckLDVFPKh5Y/S800/exception.png
我指的是显示开发人员错误地使用API的异常消息.例如,错误地将null传递给方法.所以开发人员第一次运行错误代码时会遇到的异常类型.永远不应该向系统用户显示的异常消息的类型.
这与理论有关,因为编程语言是英语的,那么程序员已经对英语有了解.或者至少足以破译异常消息.
http://www.codinghorror.com/blog/archives/001248.html(请不要在这里讨论这个理论)
是的,我知道.net框架遵循"本地化一切"的方法.