dotnet/msbuild

Refactor ExecuteInstantiatedTask exception handling

Open

#790 创建于 2016年7月19日

在 GitHub 查看
 (1 评论) (1 反应) (1 负责人)C# (1,364 fork)batch import
Area: Debuggabilityhelp wantedtriaged

仓库指标

Star
 (5,062 star)
PR 合并指标
 (平均合并 11天 7小时) (30 天内合并 125 个 PR)

描述

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.

贡献者指南