try, catch, finally, throw C# with Example
try, catch, finally, and throw allow you to handle exceptions in your code. var processor = new InputProcessor(); // The code within the try block will be executed. If an exception occurs during execution of // this code, execution will pass to the catch block corresponding to the exception type. try { processor.Process(input); } // If a FormatException is thrown during the try block, then this catch block // will be executed. catch (FormatException ex) { // Throw is a keyword that will manually throw an exception, triggering any catch block that is // waiting for that exception type. throw new InvalidOperationException("Invalid input", ex); } // catch can be used to catch all or any specific exceptions. This catch block, // with no type specified, catches any exception that hasn't already been caught // in a prior catch block. catch { LogUnexpectedException(); throw; // Re-throws the original exception. } // The finally block is executed after all try-catch blocks have been; either after the try has // succeeded in running all commands or after all exceptions have been caught. finally { processor.Dispose(); } Note: The return keyword can be used in try block, and the finally block will still be executed (just before returning). For example: try { connection.Open(); return connection.Get(query); } finally { connection.Close(); } The statement connection.Close() will execute before the result of connection.Get(query) is returned.