加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – .NET中ArgumentException.Message的本地化

发布时间:2020-12-16 01:31:08 所属栏目:百科 来源:网络整理
导读:在我的本地化应用程序中,我抛出一个像这样的ArgumentException: throw ArgumentException("LocalizedParamName","LocalizedErrorMessage"); 我这样抓住它: catch (Exception ex){ Display(ex.Message);} 我收到的结果错误信息如下: LocalizedErrorMessage
在我的本地化应用程序中,我抛出一个像这样的ArgumentException:

throw ArgumentException("LocalizedParamName","LocalizedErrorMessage");

我这样抓住它:

catch (Exception ex)
{
    Display(ex.Message);
}

我收到的结果错误信息如下:

LocalizedErrorMessage
参数名称:LocalizedParamName

这里的问题是“参数名称:”,它是英文而不是我的应用程序的语言.我假设该字符串是.NET框架的语言.任何人都可以确认吗?

一种解决方法是这样做:

catch (ArgumentException ex)
{
    Display((ex as Exception).Message  + "n" + "Translated(Parameter name:)"+ ex.ParamName);
}
catch (Exception ex)
{
    Display(ex.Message);
}

还有其他更优雅的方式吗?

解决方法

异常中的消息应该是针对开发人员的,而不是针对最终用户的.您应始终尝试捕获异常,以便显示有意义的错误消息. (不,“程序遇到意外错误并且现在将退出”没有意义.)您不应该向最终用户显示异常消息的原因是因为用户不关心开发人员是否通过从函数Foo()到函数Bar()的错误参数,更不用说它是怎么回事了.但是当你解决这个问题时,你需要知道这一点.

因此,不要担心国际化您的异常消息,而是将您的消息国际化给用户,告诉他们发生了什么,您正在做什么来修复它,并希望他们将来如何避免这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读