title: Exception from lambda expressions
body: <p>Strange one that I don't still get, is this:</p>
  
  <p>Say,</p>
  
  <pre><code>try
  {
      stateClient.Socket.BeginSend(messagePrefixed, 0, messagePrefixed.Length,
          SocketFlags.None, ar =&gt; stateClient.Socket.EndSend(ar), stateClient);
  }
  catch (SocketException ex)
  {
      // Handle SocketException.
  }
  catch (ObjectDisposedException ex)
  {
      // Handle ObjectDisposedException.
  }
  </code></pre>
  
  <p>I don't understand why lambda expression that returns with <code>ObjectDisposedException</code> is not caught!? I was going deeper into lambdas and I cant understand it. Is it about the scope of lambda? Range Variables? Thread issue? I know lambda has no multi-threading by their nature but as you can see the return comes from another thread which is created by <code>BeginSend</code>. Before converting the implementation into a lambda this was ok when i had an <code>AsyncCallBack</code> method handling the <code>EndSend</code>.</p>
  
  <p>Any help appreciated.
  Thank you in advance.</p>