try Statements and Exceptions
A try
statement specifies a code block subject to error-handling or cleanup
code. The try
block must be followed by a catch
block, a finally
block, or both.
The catch
block executes
when an error occurs in the try
block.
The finally
block executes
after execution leaves the try
block
(or if present, the catch
block), to
perform cleanup code, whether or not an error occurred.
A catch
block has access to an
Exception
object that contains
information about the error. You use a catch
block to either compensate for the error
or rethrow the exception. You rethrow an exception if
you merely want to log the problem, or if you want to rethrow a new,
higher-level exception type.
A finally
block adds determinism
to your program, by always executing no matter what. It’s useful for
cleanup tasks such as closing network connections.
A try
statement looks like
this:
try { ... // exception may get thrown within execution of // this block } catch (ExceptionA ex) { ... // handle exception of type ExceptionA } catch (ExceptionB ex) { ... // handle exception of type ExceptionB } finally { ... // clean-up code }
Consider the following code:
int x = 3, y = 0; Console.WriteLine (x / y);
Because y
is zero, the runtime
throws a DivideByZeroException
, and our
program terminates. We can prevent this by catching the exception as
follows:
try { int x = 3, y = 0; Console.WriteLine (x / y); } catch (DivideByZeroException ex) { Console.Write ("y cannot be zero. "); } // Execution resumes ...
Get C# 4.0 Pocket Reference, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.