2009-11-24 9 views
5

¿Hay alguna forma de averiguar todos los bloques de captura vacíos dentro del código de Java? Sé que hay algunas herramientas como PMD para hacer eso, pero estoy usando RSA. ¿Hay alguna forma de que podamos escribir una expresión regular para buscar bloques de captura vacíos?Cómo encontrar bloques de captura vacíos en código de Java

Actualización: Estoy trabajando en una máquina corporativa, donde no puedo instalar un nuevo software.

+0

¿por qué el uso de RSA prohibición de que el uso de PMD, Checkstyle etc? ¿Hay otro requisito allí? –

Respuesta

6

El Eclipse Java compilador se pueden configurar para producir advertencias (o mensaje de error) para las declaraciones vacías:

Java> Compilador> Errores/Advertencias> declaración vacía.

Puede usar batch compiler (Running the batch compiler) si no usa eclipse.

Pero también podría utilizar otras herramientas de Java. El uso de una biblioteca Java no es una instalación de software. Siempre que el JRE no esté bloqueado por la configuración del administrador de seguridad, esto siempre debería funcionar.

+1

Esto me ayudó, por supuesto, no de la manera exacta. en lugar de "declaración vacía" solía "bloque vacío no documentado". esto realmente encontró todos los bloques de captura vacíos. – micheal

+0

Gracias, eso es genial! :) También encuentra todos los constructores vacíos, etc. que pueden necesitar algunos comentarios. –

2

Algo como esto:

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

Esto devolverá catch declaraciones vacías, pero no con los comentarios.

+2

No te olvides de compilar el 'Pattern.MULTI_LINE'. Y olvidaste excluir comentarios en el bloque de código. –

2

Use PMD desde la línea de comandos, desde un script Ant o use Maven para construir sus proyectos. De esta forma, puede crear y probar automáticamente sus entregas y ejecutar herramientas como PMD o FindBugs.

9

Se puede utilizar esta expresión regular:

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

Donde esta sub-expresión, que se encuentra en Stephen Ostermiller's website, coincide con cualquier comentario Java:

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

Gracias Paolo! Me salvó un poco de trabajo. –

Cuestiones relacionadas