如何从try-catch简化return语句

时间:2015-12-03 09:56:37

标签: c# exception-handling code-duplication

如何简化以下代码:

BufferedReader

我想避免代码重复。

有可能吗?

1 个答案:

答案 0 :(得分:7)

如果您不想进行全面捕获并且确实需要避免重复代码,则可以使用异常过滤器捕获特定异常:

try
{
    var metadata = GetMetadata();
    return metadata ?? _provider.GetLatestMetadata(guid);
}
catch (Exception ex) when ( ex is AuthenticationException
                            || ex is HttpUnauthorizedRequestException
                            || ex is WebException
                            || ex is VcenterException
                          )
{
    return _provider.GetLatestMetadata(guid);
}