How to catch all exceptions in c# using try and catch?

Both approaches will catch all exceptions. There is no significant difference between your two code examples except that the first will generate a compiler warning because ex is declared but not used.

But note that some exceptions are special and will be rethrown automatically.

ThreadAbortException is a special exception that can be caught, but it will automatically be raised again at the end of the catch block.

http://msdn.microsoft.com/en-us/library/system.threading.threadabortexception.aspx


As mentioned in the comments, it is usually a very bad idea to catch and ignore all exceptions. Usually you want to do one of the following instead:

  • Catch and ignore a specific exception that you know is not fatal.catch (SomeSpecificException) { // Ignore this exception. }
  • Catch and log all exceptions.catch (Exception e) { // Something unexpected went wrong. Log(e); // Maybe it is also necessary to terminate / restart the application. }
  • Catch all exceptions, do some cleanup, then rethrow the exception.catch { SomeCleanUp(); throw; }

Note that in the last case the exception is rethrown using throw; and not throw ex;.