try-catch-finally (C# Reference)

A common usage of catch and finally together is to obtain and use resources in a try block, deal with exceptional circumstances in a catch block, and release the resources in the finally block.

For more information and examples on re-throwing exceptions, see try-catch and Throwing Exceptions.


public class EHClass
    void ReadFile(int index)
        // To run this code, substitute a valid path from your local machine 
        string path = @"c:\users\public\test.txt";
        System.IO.StreamReader file = new System.IO.StreamReader(path);
        char[] buffer = new char[10];
            file.ReadBlock(buffer, index, buffer.Length);
        catch (System.IO.IOException e)
            Console.WriteLine("Error reading from {0}. Message = {1}", path, e.Message);

            if (file != null)
        // Do something with buffer...


C# Language Specification

For more information, see the following sections in the C# Language Specification:

  • Try-catch-finally statements

  • 8.10 The try statement

  • 16 Exceptions

See Also


How to: Explicitly Throw Exceptions


C# Programming Guide


C# Keywords

The try, catch, and throw Statements

Exception Handling Statements (C# Reference)

throw (C# Reference)

using Statement (C# Reference)

Other Resources

C# Reference