有一个库(我无法控制)包含了一个名为Inner的函数,它会抛出StupidException类型的异常。我正在编写一个名为Outer的函数调用Inner。我无法提前知道何时会引发StupidException,也无法以任何合理的方式处理它。我不希望我的函数Outer的调用者看到StupidException——为了几个原因,我将通过从Outer返回null来向他们传达这种情况。因此,对我而言,最合理的代码似乎是:
public thing Outer()
{
thing result = null;
try
{
result = Inner();
}
catch(StupidException ex)
{
// do nothing
}
return result;
}
我已经阅读了有关空catch块的严厉警告,因为它“吞噬”异常。事实上,在这里我确实想吞噬异常,但空的catch块对我来说仍然不太合适。有更好的方法吗?