ほとんどの静的コード分析ツールは、RuntimeExceptions や Errors などの一般的な (特にチェックされていない) 例外をキャッチしないことを提案しています。
この Exception バリアがトップ レベルで妥当でない限り、通常、それは下位レベルではありません。残念ながら、既存のコードを書き換え/修正する場合、これを実現するのは非常に困難です。これは、発生する可能性のあるエラーとランタイム例外の根本的な可能性が法外なものになる可能性があるためです。さらに、一般的なキャッチの代わりにキャッチするのに十分合理的な例外のいくつかのアイデアを得るために、より低いコードレベルを掘り下げることは、ほとんどの場合、本当に時間のかかる複雑なタスクです。
このような一般的な (チェックされていない) 例外をより具体的な例外に分解するためのツールやベスト プラクティスを知っていますか?
次のようなものがあるとします。
try
{
somethingReallyComplex();
}
catch (RuntimeException | Error ex)
{
Logger.error(this, ex.getClass().getName() + " while doing something really complex", ex)
}
try ブロックには、キャッチする意味のあるさまざまな異なる RuntimeExceptions と Errors を含む、非常に複雑なコードの問題を含めることができます。しかし、このコードを最も効果的に分析して、RuntimeException を NullPointerException、ArrayIndexOutOfBoundException に分解するにはどうすればよいでしょうか?
そのようなコードを分析し、そこにある最も一般的な RuntimeExceptions などについて提案できるツールはありますか?
この問題をどのように解決し始めますか?
主観的または客観的な「しきい値」はどこにありますか: 「いいえ、RuntimeException のままにして、suppress アノテーションを追加しますか?」