 <p>Have you tried getting rid of the <code>try/catch</code> statement completely?</p> <pre><code>string clientLanguage = null; var userLanguages = filterContext.HttpContext.Request.UserLanguages; if (userLanguages != null &amp;&amp; userLanguages.Length &gt; 0) { var culture = CultureInfo .GetCultures(CultureTypes.AllCultures) .FirstOrDefault( x =&gt; string.Equals( x.Name, userLanguages[0].Name, StringComparison.OrdinalIgnoreCase ) ); if (culture != null) { clientLanguage = culture.TwoLetterISOLanguageName; } } </code></pre> <p>Use try/catch only for handling exceptions that are out of your control. As their name suggests exceptions should be used for handling exceptional cases.</p> <p>In this case you are doing standard parsing so it is much better to do defensive programming instead of trying, throwing, catching, ... </p>