C# 我应该本地化异常中的错误消息吗?

C# 我应该本地化异常中的错误消息吗?,c#,exception-handling,C#,Exception Handling,最近,我一直在为一个库开发数据导入功能,我发现自己正在这样做: throw new InvalidDataException(string.Format("Line number {0} is {1} characters instead of {2}", lineNumber, line.Length, ValidLineLength)) 对于说英语的人来说,这是非常有用的调试信息。如果它出现在Windows事件日志中的某个地方,或者显示给用户,他们将比不懂该语言的人拥有更多的信息 如果代码

最近,我一直在为一个库开发数据导入功能,我发现自己正在这样做:

throw new InvalidDataException(string.Format("Line number {0} is {1} characters instead of {2}", lineNumber, line.Length, ValidLineLength))
对于说英语的人来说,这是非常有用的调试信息。如果它出现在Windows事件日志中的某个地方,或者显示给用户,他们将比不懂该语言的人拥有更多的信息

如果代码编写者不使用英语(出于任何原因),并且他们创建了这样的错误消息,该怎么办

throw new InvalidDataException("悲しい機能は悲しいです")
对于所有使用代码并使用相同语言的人来说,这太棒了。对我们其他人来说。。。当我们记录它时,这意味着什么


您支持和反对本地化错误消息的原因是什么?

在您的异常语句中,
throw
new
InvalidDataException
string
Format
都是英文的。任何使用你的类库(或者用任何通用编程语言编写代码)的程序员都需要说英语。

如果他们使用.NET类库,他们必须非常精通英语才能识别类名,等等,用户永远不应该看到你的异常文本。我最近问了一个类似的问题,你可能会发现它很有用-@Kirk Woll为什么他们永远不应该看到异常文本?当然,他们不应该看到它们突然出现在前端,但是在日志文件中它们有什么问题?假设您没有愚蠢到将安全信息放在异常文本中。@fletcher谢谢。这是这个问题的主旨。