title: C# try-catch-else
body: <p>One thing that has bugged me with exception handling coming from Python to C# is that in C# there doesn't appear to be any way of specifying an else clause. For example, in Python I could write something like this (Note, this is just an example. I'm not asking what is the best way to read a file):</p>
  
  <pre><code>try
  {
      reader = new StreamReader(path);
  }
  catch (Exception)
  {
      // Uh oh something went wrong with opening the file for reading
  }
  else
  {
      string line = reader.ReadLine();
      char character = line[30];
  }
  </code></pre>
  
  <p>From what I have seen in most C# code people would just write the following:</p>
  
  <pre><code>try
  {
      reader = new StreamReader(path);
      string line = reader.ReadLine();
      char character = line[30];
  }
  catch (Exception)
  {
      // Uh oh something went wrong, but where?
  }
  </code></pre>
  
  <p>The trouble with this is that I don't want to catch out of range exception coming from the fact that the first line in the file may not contain more than 30 characters. I only want to catch exceptions relating to the reading of the file stream. Is there any similar construct I can use in C# to achieve the same thing?</p>