Class RegexUtil.CheckedPatternSyntaxException

  • All Implemented Interfaces:
    java.io.Serializable
    Enclosing class:
    RegexUtil

    public static class RegexUtil.CheckedPatternSyntaxException
    extends java.lang.Exception
    A checked version of PatternSyntaxException.

    This exception is useful when an illegal regex is detected but the contextual information to report a helpful error message is not available at the current depth in the call stack. By using a checked PatternSyntaxException the error must be handled up the call stack where a better error message can be reported.

    Typical usage is:

     void myMethod(...) throws CheckedPatternSyntaxException {
       ...
       if (! isRegex(myString)) {
         throw new CheckedPatternSyntaxException(...);
       }
       ... Pattern.compile(myString) ...
     
    Simply calling Pattern.compile would have a similar effect, in that PatternSyntaxException would be thrown at run time if myString is not a regular expression. There are two problems with such an approach. First, a client of myMethod might forget to handle the exception, since PatternSyntaxException is not checked. Also, the Regex Checker would issue a warning about the call to Pattern.compile that might throw an exception. The above usage pattern avoids both problems.
    See Also:
    PatternSyntaxException, Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      CheckedPatternSyntaxException​(java.lang.String desc, java.lang.String regex, @org.checkerframework.checker.index.qual.GTENegativeOne int index)
      Constructs a new CheckedPatternSyntaxException.
      CheckedPatternSyntaxException​(java.util.regex.PatternSyntaxException pse)
      Constructs a new CheckedPatternSyntaxException equivalent to the given PatternSyntaxException.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getDescription()
      Retrieves the description of the error.
      int getIndex()
      Retrieves the error index.
      java.lang.String getMessage()
      Returns a multi-line string containing the description of the syntax error and its index, the erroneous regular-expression pattern, and a visual indication of the error index within the pattern.
      java.lang.String getPattern()
      Retrieves the erroneous regular-expression pattern.
      • Methods inherited from class java.lang.Throwable

        addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • CheckedPatternSyntaxException

        public CheckedPatternSyntaxException​(java.util.regex.PatternSyntaxException pse)
        Constructs a new CheckedPatternSyntaxException equivalent to the given PatternSyntaxException.

        Consider calling this constructor with the result of RegexUtil.regexError(java.lang.String).

        Parameters:
        pse - the PatternSyntaxException to be wrapped
      • CheckedPatternSyntaxException

        public CheckedPatternSyntaxException​(java.lang.String desc,
                                             java.lang.String regex,
                                             @org.checkerframework.checker.index.qual.GTENegativeOne int index)
        Constructs a new CheckedPatternSyntaxException.
        Parameters:
        desc - a description of the error
        regex - the erroneous pattern
        index - the approximate index in the pattern of the error, or -1 if the index is not known
    • Method Detail

      • getDescription

        public java.lang.String getDescription()
        Retrieves the description of the error.
        Returns:
        the description of the error
      • getIndex

        public int getIndex()
        Retrieves the error index.
        Returns:
        the approximate index in the pattern of the error, or -1 if the index is not known
      • getMessage

        @Pure
        public java.lang.String getMessage​(@GuardSatisfied RegexUtil.CheckedPatternSyntaxException this)
        Returns a multi-line string containing the description of the syntax error and its index, the erroneous regular-expression pattern, and a visual indication of the error index within the pattern.
        Overrides:
        getMessage in class java.lang.Throwable
        Returns:
        the full detail message
      • getPattern

        public java.lang.String getPattern()
        Retrieves the erroneous regular-expression pattern.
        Returns:
        the erroneous pattern