抛出异常并记录它的方法

时间:2016-06-27 21:00:50

标签: c# .net

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

RadGridView

我想做这样的事情:

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); 方法将封装上述逻辑。

但是那些混乱会流动控制逻辑。编译器不再意识到我正在抛出异常。

还有另一种方法来压缩这段代码吗? (适用于编译器的流程分析)

1 个答案:

答案 0 :(得分:8)

让你的记录器方法返回异常。

然后你可以写

throw FailureActions.Fail("Invalid Label Type Id Look up: " + labelTypeId);

请注意,如果您忘记在呼叫站点添加throw(特别是如果您的方法返回无效),您的异常将被静默丢弃。
为了解决这个问题,您可以使您的方法throw成为例外(但仍然会返回它,以便调用点可以写throw)。