ich zu C# bin hier und ich finde Ausnahmen ein wenig verwirrend ... Ich habe einen Web-App mit dem folgenden Code:Timeout, TaskCanceledException C#
try
{
//do something
}
catch (TimeoutException t)
{
Console.WriteLine(t);
}
catch (TaskCanceledException tc)
{
Console.WriteLine(tc);
}
catch (Exception e)
{
Console.WriteLine(e);
}
Wenn ich den Code debuggen, es die E wirft Exception
, die allgemeinste und wenn ich über die Ausnahme Info schweben, stellt sich heraus, dass es die TaskCanceledException
ist. Warum wird die TaskCanceledException
nicht abgefangen? Wenn die Ausnahme ein TimeoutException
wäre würde es die TimeoutException
fangen oder würde es auch die Exception
fangen? Warum das?
Sind Sie sicher, dass es kein 'AggregationException' von einem' Task' Objekt geworfen? Zeigen Sie uns den werfenden Anruf –
... ja, es ist die System.AggregateException und die InnerException ist die System.Threading.Task.TaskCanceledException. – Marta