1 package net.sourceforge.pmd.lang.java.rule.strictexception;
2
3 import net.sourceforge.pmd.lang.java.ast.ASTCatchStatement;
4 import net.sourceforge.pmd.lang.java.ast.ASTClassOrInterfaceType;
5 import net.sourceforge.pmd.lang.java.ast.ASTType;
6 import net.sourceforge.pmd.lang.java.rule.AbstractJavaRule;
7
8
9
10
11
12
13
14
15 public class AvoidCatchingThrowableRule extends AbstractJavaRule {
16
17 @Override
18 public Object visit(ASTCatchStatement node, Object data) {
19 ASTType type = node.getFirstDescendantOfType(ASTType.class);
20 ASTClassOrInterfaceType name = type.getFirstDescendantOfType(ASTClassOrInterfaceType.class);
21 if (name.hasImageEqualTo("Throwable")) {
22 addViolation(data, name);
23 }
24 return super.visit(node, data);
25 }
26 }