当我依赖我的代码中的异常消息时,我可以确定它是英文的吗?

2 c#

我有以下代码:

if (smtpException != null)
{
    if (smtpException.InnerException.Message.Contains("net_io_connectionclosed"))
    {
        sendingFailedException = new EmailSendingFailedException(EmailsLocalization.EmailSendFailedWrongPortNumber, e);
    }

    if (smtpException.StatusCode == SmtpStatusCode.MustIssueStartTlsFirst || 
        smtpException.Message.Contains("AUTH"))
    {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

当我依赖我的代码中的异常消息时,我可以确定它是英文的吗?

Dan*_*rth 5

一般来说:不,你不能.
例如,.NET框架抛出的异常消息的语言取决于.NET框架的安装语言.来自第三方库的消息通常可以使用任何语言.这些库也可以像.NET框架一样进行本地化.

但是,您在示例中检查的内容看起来并不像人类可读的文本,而更像是协议的一部分.这些关键字源自英语,但现在是他们自己的语言.该协议的语言.如果您从其他语言派生等效关键字,协议将不再有效,因此您可以确保关键字保持不变,无论运行应用程序的计算机的区域设置还是与之通信的服务器.