我的代码中有很多这样的内容:
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);
方法将封装上述逻辑。
但是那些混乱会流动控制逻辑。编译器不再意识到我正在抛出异常。
还有另一种方法来压缩这段代码吗? (适用于编译器的流程分析)
答案 0 :(得分:8)
让你的记录器方法返回异常。
然后你可以写
throw FailureActions.Fail("Invalid Label Type Id Look up: " + labelTypeId);
请注意,如果您忘记在呼叫站点添加throw
(特别是如果您的方法返回无效),您的异常将被静默丢弃。
为了解决这个问题,您可以使您的方法throw
成为例外(但仍然会返回它,以便调用点可以写throw
)。