132 个问题
您好,.NET 的异常消息(如“试图除以零”)通常是硬编码的,可能无法根据当前文化设置进行本地化。异常消息的本地化取决于 .NET 运行时及其资源。.NET 包含许多你可以使用的不同异常。 但是,如果它们都无法满足你的需要,则可以创建自己的自定义异常。
如果本地化对您的应用程序至关重要,请考虑实施自定义异常处理以自行提供本地化消息。
private void Button_Click(object sender, RoutedEventArgs e)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CN");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CN");
try
{
int result = 10 / int.Parse("0");
}
catch (Exception ex)
{
string localizedMessage = GetLocalizedExceptionMessage(ex);
MessageBox.Show(localizedMessage, "Exception Message", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
private string GetLocalizedExceptionMessage(Exception ex)
{
if (ex is DivideByZeroException)
{
return "除数不能为零。";
}
return ex.Message;
}
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。