dotnet/msbuild

Refactor ExecuteInstantiatedTask exception handling

Open

#790 aperta il 19 lug 2016

Vedi su GitHub
 (1 commento) (1 reazione) (1 assegnatario)C# (1364 fork)batch import
Area: Debuggabilityhelp wantedtriaged

Metriche repository

Star
 (5062 star)
Metriche merge PR
 (Merge medio 11g 7h) (125 PR mergiate in 30 g)

Descrizione

There's a great deal of logic in ExecuteInstantiatedTask designed to handle exceptions thrown by tasks: https://github.com/Microsoft/msbuild/blob/4b30fac51ab58dadfffedb2a57e83b8398e3a5e1/src/XMakeBuildEngine/BackEnd/Components/RequestBuilder/TaskBuilder.cs#L720

Included in a lot of that logic is "rethrow wrapped to preserve stack", which was required in C# before C# 6. But now we have exception filters, which could simplify this logic and preserve stacks for free.

This is an important part of failure handling, so we'd need to make sure the right behavior from the existing logic is preserved.

Guida contributor