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

本文关键字:记录 方法 抛出异常 一种 | 更新日期: 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)。