sto cercando di eseguire il codice seguente:Perché questa eccezione non viene rilevata?
class Program
{
static void Main(string[] args)
{
var task = Task.Factory.StartNew(() =>
{
throw new ApplicationException("message");
});
try
{
task.ContinueWith(t => Console.WriteLine("End"));
}
catch (AggregateException aex)
{
Console.Write(aex.InnerException.Message);
}
}
}
mi aspettavo che il Exception
sarebbe stato catturato nella seguente posizione:
catch (AggregateException aex)
{
Console.Write(aex.InnerException.Message);
}
Ma questo non sta accadendo. Perché è così?
Le risposte hanno indicato cosa e come fare ma non il "perché" (l'eccezione non viene rilevata). Credo che questo razionale sia importante da comprendere ed è spiegato nell'articolo di Stephen Toub [Task Exception Handling in .NET 4.5] (http://blogs.msdn.com/b/pfxteam/archive/2011/09/28/10217876. aspx) che è una lettura obbligata] –