一种抛出异常并记录它的方法
本文关键字:记录 方法 抛出异常 一种 | 更新日期: 2023-09-27 17:51:21
我的代码中有很多这样的代码:
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
方法将封装上述逻辑。
但这将打乱流控制逻辑。编译器不再意识到我抛出了一个异常。
是否有其他方法来压缩这段代码?
让logger方法返回异常。
你可以写
throw FailureActions.Fail("Invalid Label Type Id Look up: " + labelTypeId);
请注意,如果您忘记在调用站点添加throw
(特别是如果您的方法返回void),您的异常将被静默丢弃。
为了帮助解决这个问题,您可以使您的方法也throw
异常(但仍然返回它,以便调用者可以写throw
)。