C# 抛出异常并记录它的一种方法

C# 抛出异常并记录它的一种方法,c#,.net,C#,.net,我的代码中有很多这样的内容: if (labelType == null) { var errorMessage = "Invalid Label Type Id Look up: " + labelTypeId; log.Error(errorMessage); throw new ApplicationException(errorMessage); } 我想这样做: FailureActions.Fail("Invalid Label Type Id Look u

我的代码中有很多这样的内容:

if (labelType == null)
{
    var errorMessage = "Invalid Label Type Id Look up: " + labelTypeId;
    log.Error(errorMessage);
    throw new ApplicationException(errorMessage);
}
我想这样做:

FailureActions.Fail("Invalid Label Type Id Look up: " + labelTypeId);
Fail
方法将封装上述逻辑

但这会扰乱流量控制逻辑。编译器不再意识到我正在抛出异常


是否有其他方法压缩此代码?(与编译器的流分析一起使用)

使记录器方法返回异常

然后你就可以写了

throw FailureActions.Fail("Invalid Label Type Id Look up: " + labelTypeId);
请注意,如果您忘记在调用站点添加
throw
(特别是如果您的方法返回void),那么您的异常将被默默地丢弃。

为了帮助实现这一点,您可以使您的方法也
抛出
异常(但仍然返回它,以便调用站点可以编写
抛出
)。

工作得非常好。谢谢