2

Javaプロジェクトがあり、RuntimeExceptionがスローされる可能性のあるソースコード内の場所のリストが必要です。これを行うためのツールまたはEclipseプラグインはありますか?

FindBugsまたはPMDを使用すると、NullPointerExceptionsが見つかる可能性がありますが、他の例外も見つける必要があります。

4

3 に答える 3

2

NullPointerException、ClassCastException、およびArithmeticExceptionは、明示的にスローする必要がないため、特殊なケースです。ただし、他のすべては明示的にスローする必要があります。

NullPointerExceptionの考えられる原因を検索することは、一般的なバグとして役立ちますが、すべてのRuntimeExceptionと同様に、処理するよりも回避するのが最善です。考えられるすべての原因を検索すると、非常に大きな結果が得られる可能性が高く、役に立たない可能性があります。(私は自分でこの演習を行ってきましたが、多くの作業を行ってもあまりIMHOを達成できませんでした)

コードカバレッジを使用し、エッジケース値を試して、代わりにすべての可能な例外をトリガーする可能性のある適切なテストケースがあることを確認することをお勧めします。

于 2011-11-22T09:28:09.583 に答える
0

自分のコードだけをチェックしている場合は、Checkstyleを使用してこれを行うことができます。コーディングの問題、不正なスローのチェックを見てください。

例外はいくつでも指定できます。デフォルトでは次のようになりますjava.lang.Throwable, java.lang.Error, java.lang.RuntimeException

注:これは、上記の例外のサブクラスを取得するのではなく、クラス自体を取得するだけです。また、アクセス権のないソースコードもチェックされないため、たとえばランタイムライブラリはチェックされません。

于 2011-11-22T09:26:08.267 に答える
0

私は他の答えに同意します。私はあなたが何を達成したいのかわからないので、私はあなたの質問にもっと直接的な答えを提供したいと思います:

残念ながら、これを行うツールはありません。ごめん。それがあなたにとってどれほど重要であるかに応じて、あなたは自分でいくつかの仕事を投資することができます。

「手作業で」コードを確認してください。

その後、JDKは残ります(そしておそらくあなたが使用しているいくつかのライブラリ)。JDKのソースコードはOracleからダウンロードできます。新しく作成された例外インスタンスの発生を再度全文検索することができます。ただし、一部のメソッドが欠落しているため、この面倒な作業でもすべての可能なソースが提供されるわけではないことに注意してください。

于 2011-11-22T09:46:25.613 に答える