タイプStupidExceptionの例外を発生させるInnerという名前の関数を含むライブラリ (私は制御していません) があります。Innerを呼び出すOuterという名前の関数を作成しています。StupidExceptionがいつ発生するかを前もって知ることはできず、適切な方法で処理することもできません。関数Outerの呼び出し元にStupidExceptionが表示されることは望ましくありません。代わりに、 Outerから null を返すことで状況を伝えます(いくつかの理由から)。したがって、最も合理的なコードは次のように思われます。
public thing Outer()
{
thing result = null;
try
{
result = Inner();
}
catch(StupidException ex)
{
// do nothing
}
return result;
}
例外を「飲み込む」ため、空の catch ブロックがどのように悪であるかについての厳しい警告を読みました。例外を飲み込むことは、ここで実際にやりたいことですが、空の catch ブロックはまだ正しくないと感じています。より良い方法はありますか?