是否可以在 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 视为无效的。