title: yield return with try catch, how can i solve it
body: <p>I've a piece of code:</p>
  
  <pre><code>using (StreamReader stream = new StreamReader(file.OpenRead(), Encoding))
  {
      char[] buffer = new char[chunksize];
      while (stream.Peek() &gt;= 0)
      {
         int readCount = stream.Read(buffer, 0, chunksize);
  
         yield return new string(buffer, 0, readCount);
      }
   }
  </code></pre>
  
  <p>Now i have to surround this with an try-catch block</p>
  
  <pre><code>try
  {
     using (StreamReader stream = new StreamReader(file.OpenRead(), Encoding))
     {
         char[] buffer = new char[chunksize];
         while (stream.Peek() &gt;= 0)
         {
            int readCount = stream.Read(buffer, 0, chunksize);
  
            yield return new string(buffer, 0, readCount);
         }
      } 
  }
  catch (Exception ex)
  {
      throw ExceptionMapper.Map(ex, file.FullName)
  }
  </code></pre>
  
  <p>I can't see any way to do what i want.</p>
  
  <p><strong>EDIT</strong>
  The method has the signature</p>
  
  <pre><code>public IEnumerable&lt;string&gt; ReadPieces(int pieces)
  </code></pre>
  
  <p>I need a <code>try catch</code> with a call to the <code>ExceptionMapper</code> in the <code>catch</code> case.
  The method is used deferred by all callers.</p>
  
  <p>The exceptions i have to catch are coming from these calls</p>
  
  <pre><code>File.OpenRead()
  stream.Read()
  </code></pre>