public final class IllegalThrowsCheck extends AbstractCheck
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.
illegalClassNames - Specify throw class names to reject.
Type is java.lang.String[].
Default value is Error, RuntimeException, Throwable, java.lang.Error,
java.lang.RuntimeException, java.lang.Throwable.
ignoredMethodNames - Specify names of methods to ignore.
Type is java.lang.String[].
Default value is finalize.
ignoreOverriddenMethods - allow to ignore checking overridden methods
(marked with Override or java.lang.Override annotation).
Type is boolean.
Default value is true.
To configure the check:
<module name="IllegalThrows"/>
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="IllegalThrows"> <property name="illegalClassNames" value="NullPointerException"/> </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="IllegalThrows"> <property name="ignoredMethodNames" value="func1"/> </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="IllegalThrows"> <property name="ignoreOverriddenMethods" value="false"/> </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
}
Parent is com.puppycrawl.tools.checkstyle.TreeWalker
Violation Message Keys:
illegal.throw
AutomaticBean.OutputStreamOptions| Modifier and Type | Field and Description |
|---|---|
private java.util.Set<java.lang.String> |
ignoredMethodNames
Specify names of methods to ignore.
|
private boolean |
ignoreOverriddenMethods
Allow to ignore checking overridden methods (marked with
Override
or java.lang.Override annotation). |
private java.util.Set<java.lang.String> |
illegalClassNames
Specify throw class names to reject.
|
static java.lang.String |
MSG_KEY
A key is pointing to the warning message text in "messages.properties"
file.
|
| Constructor and Description |
|---|
IllegalThrowsCheck() |
| Modifier and Type | Method and Description |
|---|---|
int[] |
getAcceptableTokens()
The configurable token set.
|
int[] |
getDefaultTokens()
Returns the default token a check is interested in.
|
int[] |
getRequiredTokens()
The tokens that this check must be registered for.
|
private boolean |
isIgnorableMethod(DetailAST methodDef)
Checks if current method is ignorable due to Check's properties.
|
void |
setIgnoredMethodNames(java.lang.String... methodNames)
Setter to specify names of methods to ignore.
|
void |
setIgnoreOverriddenMethods(boolean ignoreOverriddenMethods)
Setter to allow to ignore checking overridden methods
(marked with
Override or java.lang.Override annotation). |
void |
setIllegalClassNames(java.lang.String... classNames)
Setter to specify throw class names to reject.
|
private boolean |
shouldIgnoreMethod(java.lang.String name)
Check if the method is specified in the ignore method list.
|
void |
visitToken(DetailAST detailAST)
Called to process a token.
|
beginTree, clearViolations, destroy, finishTree, getFileContents, getLine, getLineCodePoints, getLines, getTabWidth, getTokenNames, getViolations, init, isCommentNodesRequired, leaveToken, log, log, log, setFileContents, setTabWidth, setTokensfinishLocalSetup, getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, setId, setSeverityconfigure, contextualize, getConfiguration, setupChildpublic static final java.lang.String MSG_KEY
private final java.util.Set<java.lang.String> ignoredMethodNames
private final java.util.Set<java.lang.String> illegalClassNames
private boolean ignoreOverriddenMethods
Override
or java.lang.Override annotation).public IllegalThrowsCheck()
public void setIllegalClassNames(java.lang.String... classNames)
classNames - array of illegal exception classespublic int[] getDefaultTokens()
AbstractCheckgetDefaultTokens in class AbstractCheckTokenTypespublic int[] getRequiredTokens()
AbstractCheckgetRequiredTokens in class AbstractCheckTokenTypespublic int[] getAcceptableTokens()
AbstractCheckgetAcceptableTokens in class AbstractCheckTokenTypespublic void visitToken(DetailAST detailAST)
AbstractCheckvisitToken in class AbstractCheckdetailAST - the token to processprivate boolean isIgnorableMethod(DetailAST methodDef)
methodDef - METHOD_DEFprivate boolean shouldIgnoreMethod(java.lang.String name)
name - the name to checkpublic void setIgnoredMethodNames(java.lang.String... methodNames)
methodNames - array of ignored method namespublic void setIgnoreOverriddenMethods(boolean ignoreOverriddenMethods)
Override or java.lang.Override annotation).ignoreOverriddenMethods - Check's property.Copyright © 2001-2022. All Rights Reserved.