有一个库(我无法控制)包含一个名为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 块对我来说仍然感觉不对。有没有更好的办法?