Class IllegalThrowsCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable

    public final class IllegalThrowsCheck
    extends AbstractCheck

    Throwing java.lang.Error or java.lang.RuntimeException is almost never acceptable.

    Check has following properties:

    illegalClassNames - throw class names to reject.

    ignoredMethodNames - names of methods to ignore.

    ignoreOverriddenMethods - ignore checking overridden methods (marked with Override or java.lang.Override annotation) default value is true.

    • Field Detail

      • MSG_KEY

        public static final java.lang.String MSG_KEY
        A key is pointing to the warning message text in "messages.properties" file.
        See Also:
        Constant Field Values
      • ignoredMethodNames

        private final java.util.Set<java.lang.String> ignoredMethodNames
        Methods which should be ignored.
      • illegalClassNames

        private final java.util.Set<java.lang.String> illegalClassNames
        Illegal class names.
      • ignoreOverriddenMethods

        private boolean ignoreOverriddenMethods
        Property for ignoring overridden methods.
    • Constructor Detail

      • IllegalThrowsCheck

        public IllegalThrowsCheck()
    • Method Detail

      • setIllegalClassNames

        public void setIllegalClassNames​(java.lang.String... classNames)
        Set the list of illegal classes.
        Parameters:
        classNames - array of illegal exception classes
      • getDefaultTokens

        public int[] getDefaultTokens()
        Description copied from class: AbstractCheck
        Returns the default token a check is interested in. Only used if the configuration for a check does not define the tokens.
        Specified by:
        getDefaultTokens in class AbstractCheck
        Returns:
        the default tokens
        See Also:
        TokenTypes
      • getRequiredTokens

        public int[] getRequiredTokens()
        Description copied from class: AbstractCheck
        The tokens that this check must be registered for.
        Specified by:
        getRequiredTokens in class AbstractCheck
        Returns:
        the token set this must be registered for.
        See Also:
        TokenTypes
      • getAcceptableTokens

        public int[] getAcceptableTokens()
        Description copied from class: AbstractCheck
        The configurable token set. Used to protect Checks against malicious users who specify an unacceptable token set in the configuration file. The default implementation returns the check's default tokens.
        Specified by:
        getAcceptableTokens in class AbstractCheck
        Returns:
        the token set this check is designed for.
        See Also:
        TokenTypes
      • visitToken

        public void visitToken​(DetailAST detailAST)
        Description copied from class: AbstractCheck
        Called to process a token.
        Overrides:
        visitToken in class AbstractCheck
        Parameters:
        detailAST - the token to process
      • isIgnorableMethod

        private boolean isIgnorableMethod​(DetailAST methodDef)
        Checks if current method is ignorable due to Check's properties.
        Parameters:
        methodDef - METHOD_DEF
        Returns:
        true if method is ignorable.
      • shouldIgnoreMethod

        private boolean shouldIgnoreMethod​(java.lang.String name)
        Check if the method is specified in the ignore method list.
        Parameters:
        name - the name to check
        Returns:
        whether the method with the passed name should be ignored
      • setIgnoredMethodNames

        public void setIgnoredMethodNames​(java.lang.String... methodNames)
        Set the list of ignore method names.
        Parameters:
        methodNames - array of ignored method names
      • setIgnoreOverriddenMethods

        public void setIgnoreOverriddenMethods​(boolean ignoreOverriddenMethods)
        Sets ignoreOverriddenMethods property value.
        Parameters:
        ignoreOverriddenMethods - Check's property.