【发布时间】:2013-01-25 06:05:48
【问题描述】:
是否可以在 C# 中以某种方式调用内联 try 语句?
我正在为我的网站检测语言,有时,由于某种原因,当客户端的语言类似于 en-GR 时,.NET 会引发异常。所以我需要使用try 和catch,即使我没有真正捕捉到任何东西。
在这种情况下,这似乎完全是矫枉过正。
// Set allowed languages
string[] allowedLanguages = { "en", "fr", "ru" };
// Get all possible values
var routeLanguage = (filterContext.RouteData.Values["lang"] != null && allowedLanguages.Contains(filterContext.RouteData.Values["lang"].ToString())) ? filterContext.RouteData.Values["lang"].ToString() : null;
var cookieLanguage = (filterContext.HttpContext.Request.Cookies["lang"] != null && allowedLanguages.Contains(filterContext.HttpContext.Request.Cookies["lang"].Value)) ? filterContext.HttpContext.Request.Cookies["lang"].Value : null;
string clientLanguage = null;
try
{
clientLanguage = (filterContext.HttpContext.Request.UserLanguages != null) ? new CultureInfo(filterContext.HttpContext.Request.UserLanguages[0]).TwoLetterISOLanguageName : null; // Exception sometimes without `try`
}
catch (Exception)
{
}
编辑
我无法修复异常,因为我无法控制用户在其文化信息中的内容。 .NET 只是将 en-FR 视为无效的。
【问题讨论】:
-
内联尝试是什么意思?
-
抛出了什么异常?
-
不。你以错误的方式处理这个问题。修复你的错误,而不是试图让它静音!
-
异常不是我可以修复的,因为我无法控制用户在其文化信息中的内容。 .NET 只是将
en-FR视为无效的。 -
@Steve 不,你可以修复它。
标签: c# exception exception-handling try-catch