4

私は、明らかに標準以下のエラー処理を行うGroovyアプリケーションのメンテナンスを行っています-無数のインスタンスがcatch (Exception e) {}いたるところにあります。はるかにきめ細かい例外処理を実装したいのですが、そのためには、特定のハンドラー ブロックがキャッチできる例外を知る必要があります。また、Groovy は Java のチェック例外規則に従っていないため、これは重要です。

このアプリ用の堅牢なテスト プラットフォームがあれば、単純にすべてのハンドラーを削除してから、失敗する可能性のある方法の包括的なリストができるまでテストしますが、残念ながら、このコードはかなり乱雑な分散アプリケーションの一部です。カスタムハードウェアに依存しているため、そのテストベッドを作成することは、現在私が持っているリソースよりもはるかに大きなタスクです。

それで、コードを分析して、特定のステートメントがスローする可能性のあるすべての例外のリストを取得できるショートカット(適切な魔法を備えた特定のIDEでも)があるかどうか疑問に思っていますか?

4

1 に答える 1

1

catch (Exception ex) {}のすべてのインスタンスがJavaコードから移植されたためにそこに配置され(プログラマーがそれらを処理するのが面倒だった場合)、プログラマーがフローを続行することを意図していなかったと想定できる場合は、のすべてのインスタンスを置き換えることができるはずです。そのコード:

catch (Exception ex) {
  throw new RuntimeException(ex);
}

そうすることを除けば、コードベースがどのように機能するかを知らずに(またはどのように機能するかを知っているテストを行うことなく)、コードベースを効果的に変更する方法がわかりません。チェックされた可能性のあるすべての例外を列挙するツールがあったとしても、アプリがどのようにフォールオーバーするかを知らなくても、どの例外を処理し、どの例外を再スローするかをどのように知ることができますか?

于 2012-06-07T22:21:06.283 に答える