Wie die Verwaltung richtig eine Ausnahme, in der eine Aufgabe mit ContinueWith

Nach dem Lesen der Informationen über die Aufgabe und exepcion management, bin ich mit diesem code zu verwalten, eine Ausnahme in einer Aufgabe:

Task<Object> myTask = Task.Factory.StartNew<Object>(doTask, CancellationToken.None,   TaskCreationOptions.None, TaskScheduler.Default);
myTask .ContinueWith(task => afterTask(task), TaskScheduler.FromCurrentSynchronizationContext());

Wo doTask und AfterTask sind:

private <Object> doTask() {
    throw new Exception("BOOM");
}

private afterTask(Task<Object> aTask) {

        if (aTask.IsFaulted)
        {
            MessageBox.Show(aTask.Exception.InnerException.Message);
        }
        else //whatever
}

Als Ausnahme-Boom ausgelöst der Visual Studio zeigt eine Warnung, die darüber informiert, dass eine Ausnahme nicht gefangen wurde, aber wenn ich weiterhin in der Ausführung der Ausnahme erfolgt in der afterTask Funktion.

Ist dieser code richtig oder ich missverstanden werden einige grundlegende Verhalten der Aufgabe? Gibt es eine Möglichkeit zu vermeiden, die Warnung des Debuggers, dass die execption hat nicht gefangen wurden? Ist ein bisschen nervig...

Vielen Dank im Voraus

InformationsquelleAutor Ivan BASART | 2013-09-17
Schreibe einen Kommentar