Class RegexUtil.CheckedPatternSyntaxException
- java.lang.Object
-
- java.lang.Throwable
-
- java.lang.Exception
-
- org.checkerframework.checker.regex.util.RegexUtil.CheckedPatternSyntaxException
-
- All Implemented Interfaces:
java.io.Serializable
- Enclosing class:
- RegexUtil
public static class RegexUtil.CheckedPatternSyntaxException extends java.lang.ExceptionA checked version ofPatternSyntaxException.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 callingPattern.compilewould have a similar effect, in thatPatternSyntaxExceptionwould be thrown at run time ifmyStringis not a regular expression. There are two problems with such an approach. First, a client ofmyMethodmight forget to handle the exception, sincePatternSyntaxExceptionis not checked. Also, the Regex Checker would issue a warning about the call toPattern.compilethat 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 givenPatternSyntaxException.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringgetDescription()Retrieves the description of the error.intgetIndex()Retrieves the error index.java.lang.StringgetMessage()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.StringgetPattern()Retrieves the erroneous regular-expression pattern.
-
-
-
Constructor Detail
-
CheckedPatternSyntaxException
public CheckedPatternSyntaxException(java.util.regex.PatternSyntaxException pse)
Constructs a new CheckedPatternSyntaxException equivalent to the givenPatternSyntaxException.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 errorregex- the erroneous patternindex- the approximate index in the pattern of the error, or-1if 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
-1if 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:
getMessagein classjava.lang.Throwable- Returns:
- the full detail message
-
getPattern
public java.lang.String getPattern()
Retrieves the erroneous regular-expression pattern.- Returns:
- the erroneous pattern
-
-