Share via


How to: Handle an Exception Using try/catch (C# Programming Guide) 

The purpose of a try-catch block is to catch and handle an exception generated by working code. Some exceptions can be handled in a catch block and the problem solved without the exception being re-thrown; however, more often the only thing you can do is make sure the appropriate exception is thrown.

Example

In this example, IndexOutOfRangeException is not the most appropriate exception: ArgumentOutOfRangeException makes more sense for the method.

class TestTryCatch
{
    static int GetInt(int[] array, int index)
    {
        try
        {
            return array[index];
        }
        catch (System.IndexOutOfRangeException e)  // CS0168
        {
            System.Console.WriteLine(e.Message);
            throw new System.ArgumentOutOfRangeException("index", "Parameter is out of range.");
        }
    }
}

Comments

The code that results in an exception is enclosed in the try block. A catch statement is added immediately after to handle IndexOutOfRangeException, if it occurs. The catch block handles the IndexOutOfRangeException and throws the more appropriate ArgumentOutOfRangeException exception instead.

See Also

Reference

Exceptions and Exception Handling (C# Programming Guide)
Exception Handling (C# Programming Guide)

Concepts

C# Programming Guide