次のようなコードを実行する関数があります。
Protected void XXXXfunc()
{
  //i register a callback for asynchronous operation below is just an example
  // not true to its operation 
  byte[] buffer = new byte[10];
  s.BeginReceive(buffer, 0, 10, SocketFlags.None,
      new AsyncCallback(OnMessageReceived), buffer);
}
// Callback function
XXXX callback OnMessageReceived(XXXX)
{
  //Something Goes wrong here i throw an exception 
  throw(exception);
}
この例外をどこでどのようにキャッチするか、またはこの例外をどこでキャッチするか。