It is discouraged to simply catch System.Exception. Instead, only the "known" exceptions should be caught.
System.Exception
Now, this sometimes leads to unnecce
In c# 6.0,Exception Filters is improvements for exception handling
try { DoSomeHttpRequest(); } catch (System.Web.HttpException e) { switch (e.GetHttpCode()) { case 400: WriteLine("Bad Request"); case 500: WriteLine("Internal Server Error"); default: WriteLine("Generic Error"); } }