5 Stimmen

Wie man leere Catch-Blöcke im Java-Code findet

Gibt es einen Weg, alle leeren catch-Blöcke im Java-Code zu finden? Ich weiß, dass es einige Tools wie PMD gibt, um das zu tun, aber ich benutze RSA. Gibt es einen Weg, wie wir ein Regex schreiben können, um nach leeren catch-Blöcken zu suchen?

Ich arbeite an einem Firmenrechner, auf dem ich keine neuen Software installieren kann.

0 Stimmen

Warum würde die Verwendung von RSA dich daran hindern, PMD, Checkstyle usw. zu verwenden? Gibt es noch eine andere Anforderung?

10voto

Paolo Fulgoni Punkte 4703

Sie können diesen regulären Ausdruck verwenden:

catch\s*\([^\)]*\)\s*\{((/\*(.|[\r\n])*?\*/)|\s)*\}

Wo dieser Teil-Ausdruck, auf der Website von Stephen Ostermiller gefunden, etwa Java-Kommentar übereinstimmt:

/\*(.|[\r\n])*?\*/

6voto

Thomas Jung Punkte 31524

Der Eclipse Java Compiler kann so konfiguriert werden, dass Warnungen (oder Fehlermeldungen) für leere Anweisungen erzeugt werden:

Java > Compiler > Fehler/Warnings > Leere Anweisung.

Sie könnten den Batch-Compiler (Ausführen des Batch-Compilers) verwenden, wenn Sie Eclipse nicht verwenden.

Aber dann könnten Sie auch andere Java-Tools verwenden. Die Verwendung einer Java-Bibliothek erfordert keine Softwareinstallation. Solange die JRE nicht durch die Sicherheitsmanager-Konfiguration gesperrt ist, sollte dies immer funktionieren.

1 Stimmen

Dies hat mir geholfen, natürlich nicht auf exakte Weise. Anstelle von "leerer Anweisung" habe ich "nicht dokumentierten leeren Block" verwendet. Dies hat tatsächlich alle leeren catch-Blöcke gefunden.

0 Stimmen

Vielen Dank, das ist großartig! :) Findet auch alle leeren Konstruktoren usw., die möglicherweise einige Kommentare benötigen.

2voto

Paul Lammertsma Punkte 36529

Etwas wie das:

catch[\s]*\([^\)]*\)[\s]*{[\s]*}

Dies gibt leere catch-Anweisungen zurück, jedoch nicht solche mit Kommentaren.

2 Stimmen

Vergessen Sie nicht, das Pattern.MULTI_LINE zu kompilieren. Und Sie haben vergessen, Kommentare im Code-Block auszuschließen.

2voto

Aaron Digulla Punkte 308693

Verwenden Sie PMD von der Befehlszeile, von einem Ant-Skript aus oder verwenden Sie Maven, um Ihre Projekte zu erstellen. Auf diese Weise können Sie automatisch erstellen und testen Sie Ihre Ergebnisse und führen Sie Tools wie PMD oder FindBugs aus.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X