Since Checkstyle 4.0
Checks that specified types are not declared to be thrown.
Declaring that a method throws java.lang.Error or
java.lang.RuntimeException is almost never acceptable.
| name | description | type | default value | since |
|---|---|---|---|---|
| ignoreOverriddenMethods | Allow to ignore checking overridden methods (marked with Override or java.lang.Override annotation). |
boolean | true |
6.4 |
| ignoredMethodNames | Specify names of methods to ignore. | String[] | finalize |
5.4 |
| illegalClassNames | Specify throw class names to reject. | String[] | Error, RuntimeException, Throwable, java.lang.Error, java.lang.RuntimeException, java.lang.Throwable |
4.0 |
To configure the check:
<module name="Checker">
<module name="TreeWalker">
<module name="IllegalThrows"/>
</module>
</module>
Example:
public class Test {
public void func1() throws RuntimeException {} // violation
public void func2() throws Exception {} // ok
public void func3() throws Error {} // violation
public void func4() throws Throwable {} // violation
public void func5() throws NullPointerException {} // ok
@Override
public void toString() throws Error {} // ok
}
To configure the check rejecting throws NullPointerException from methods:
<module name="Checker">
<module name="TreeWalker">
<module name="IllegalThrows">
<property name="illegalClassNames" value="NullPointerException"/>
</module>
</module>
</module>
Example:
public class Test {
public void func1() throws RuntimeException {} // ok
public void func2() throws Exception {} // ok
public void func3() throws Error {} // ok
public void func4() throws Throwable {} // ok
public void func5() throws NullPointerException {} // violation
@Override
public void toString() throws Error {} // ok
}
To configure the check ignoring method named "func1()":
<module name="Checker">
<module name="TreeWalker">
<module name="IllegalThrows">
<property name="ignoredMethodNames" value="func1"/>
</module>
</module>
</module>
Example:
public class Test {
public void func1() throws RuntimeException {} // ok
public void func2() throws Exception {} // ok
public void func3() throws Error {} // violation
public void func4() throws Throwable {} // violation
public void func5() throws NullPointerException {} // ok
@Override
public void toString() throws Error {} // ok
}
To configure the check to warn on overridden methods:
<module name="Checker">
<module name="TreeWalker">
<module name="IllegalThrows">
<property name="ignoreOverriddenMethods" value="false"/>
</module>
</module>
</module>
Example:
public class Test {
public void func1() throws RuntimeException {} // violation
public void func2() throws Exception {} // ok
public void func3() throws Error {} // violation
public void func4() throws Throwable {} // violation
public void func5() throws NullPointerException {} // ok
@Override
public void toString() throws Error {} // violation
}
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
com.puppycrawl.tools.checkstyle.checks.coding