2017-02-14 5 views
3

私のチームはかなりの量のコードを持っています。最近、私は正しく閉じられていないオブジェクトをいくつか見つけました。
try-with-resourcesブロック内に閉じられていない、または閉じられていないインスタンスをすべて見つけるにはどうすればよいですか?
StatementResultSetなどのオブジェクトは、警告メッセージを表示していません。コード内の閉じられていないインスタンスとオブジェクトをすべて見つけるにはどうすればよいですか?

このすべての出現を表示するための拡張ツールはありますか?
私はEclipseを使用しています。

+0

AFAIKはリソースをクローズすることを約束しているので、そこでは起こってはいけません。しかし、古い学校の 'try'-' catch'ブロックはどうでしょうか、あなたはそれらのどれも持っていますか? –

+0

@Tim TWRは、「指定された」リソースを閉じることのみを保証します。たとえば、 '' BufferedReader'' =新しいBufferedReader(new InputStreamReader(new FileInputStream( "..."))){} 'を呼び出すと、' BufferedReader'だけが閉じられることが保証されます。 –

+0

あなたが正しくあなたを理解していれば、どんなリソースブロックにも問題が生じる可能性があります。 –

答えて

2

Sonarのような静的コード解析ツールでは、これらのすべての現象を検出して警告する必要があります。
IDEA IntelliJ's inspection profilesには、設定>エディタ>インスペクション> Java>リソース管理の問題のいくつかのルールが含まれています。または、インスペクション内で「閉じる」でフィルタリングするだけです)。

私はEclipseを使用していることがわかります。おそらくthe FindBugs Eclipse pluginをインストールすることができます。これには、リソースが正しく閉じられているかどうかを確認するための2つのルールが含まれています。

関連する問題