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