Wie fangen Sie die Ausnahmen von der Aktion mit anonymen Methode in c#?

Kann man erklären, warum bekomme ich nicht die Ausnahme von Schlag-code:

Action <Exception> myact = ( ) => {       
    throw new Exception( "test" );
  };

  Task myactTask = Task.Factory.StartNew( ( ) => myact);
  try {
    myactTask.Wait( );
    Console.WriteLine( myactTask.Id.ToString( ) );
    Console.WriteLine( myactTask.IsCompleted.ToString( ) );
  }
  catch( AggregateException ex ) {
    throw ex;
  }

auf der anderen Seite, wenn die ersetzen-Aktion "myact" mit der Methode "myact()" dann habe ich eine Ausnahme und es kann vorgeführt mit try-catch-block.

public static void myact( ) {
  throw new Exception( "test" );
}
  • Ich bin mir nicht sicher, warum die Ausnahme im zweiten Fall würde gefangen werden, da der exception-handler ist nur abfangen AggregateException und nicht mehr die Allgemeine Exception. Auch die Berufung auf die anonyme Methode ist außerhalb die try/catch block. Dies ist eine genaue Darstellung des Codes?
  • Ich versuchte, mit einer Ausnahme, aber es hat nicht funktioniert.
InformationsquelleAutor User1551892 | 2013-01-23
Schreibe einen Kommentar