1 /* 2 * Copyright (c) 2007-present, Stephen Colebourne & Michael Nascimento Santos 3 * 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions are met: 8 * 9 * * Redistributions of source code must retain the above copyright notice, 10 * this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright notice, 13 * this list of conditions and the following disclaimer in the documentation 14 * and/or other materials provided with the distribution. 15 * 16 * * Neither the name of JSR-310 nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 package org.threeten.bp.format; 33 34 import org.threeten.bp.DateTimeException; 35 36 /** 37 * An exception thrown when an error occurs during parsing. 38 * <p> 39 * This exception includes the text being parsed and the error index. 40 * 41 * <h3>Specification for implementors</h3> 42 * This class is intended for use in a single thread. 43 */ 44 public class DateTimeParseException extends DateTimeException { 45 46 /** 47 * Serialization version. 48 */ 49 private static final long serialVersionUID = 4304633501674722597L; 50 51 /** 52 * The text that was being parsed. 53 */ 54 private final String parsedString; 55 /** 56 * The error index in the text. 57 */ 58 private final int errorIndex; 59 60 /** 61 * Constructs a new exception with the specified message. 62 * 63 * @param message the message to use for this exception, may be null 64 * @param parsedData the parsed text, should not be null 65 * @param errorIndex the index in the parsed string that was invalid, should be a valid index 66 */ DateTimeParseException(String message, CharSequence parsedData, int errorIndex)67 public DateTimeParseException(String message, CharSequence parsedData, int errorIndex) { 68 super(message); 69 this.parsedString = parsedData.toString(); 70 this.errorIndex = errorIndex; 71 } 72 73 /** 74 * Constructs a new exception with the specified message and cause. 75 * 76 * @param message the message to use for this exception, may be null 77 * @param parsedData the parsed text, should not be null 78 * @param errorIndex the index in the parsed string that was invalid, should be a valid index 79 * @param cause the cause exception, may be null 80 */ DateTimeParseException(String message, CharSequence parsedData, int errorIndex, Throwable cause)81 public DateTimeParseException(String message, CharSequence parsedData, int errorIndex, Throwable cause) { 82 super(message, cause); 83 this.parsedString = parsedData.toString(); 84 this.errorIndex = errorIndex; 85 } 86 87 //----------------------------------------------------------------------- 88 /** 89 * Returns the string that was being parsed. 90 * 91 * @return the string that was being parsed, should not be null. 92 */ getParsedString()93 public String getParsedString() { 94 return parsedString; 95 } 96 97 /** 98 * Returns the index where the error was found. 99 * 100 * @return the index in the parsed string that was invalid, should be a valid index 101 */ getErrorIndex()102 public int getErrorIndex() { 103 return errorIndex; 104 } 105 106 } 107