All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.biojava.utils.ParserException Maven / Gradle / Ivy

There is a newer version: 1.9.7
Show newest version
/*
 *                    BioJava development code
 *
 * This code may be freely distributed and modified under the
 * terms of the GNU Lesser General Public Licence.  This should
 * be distributed with the code.  If you do not have a copy,
 * see:
 *
 *      http://www.gnu.org/copyleft/lesser.html
 *
 * Copyright for this code is held jointly by the individual
 * authors.  These should be listed in @author doc comments.
 *
 * For more information on the BioJava project and its aims,
 * or to join the biojava-l mailing list, visit the home page
 * at:
 *
 *      http://www.biojava.org/
 *
 */

package org.biojava.utils;

/**
 * Exception thrown when an error occurs in document parsing.
 * It may optionally include the following fields:
 *
 * 
 *   Locator (file name, URL, etc.)
 *   Line number (negative for unknown)
 *   The text of the actual offending line (Null if unknown)
 *   Character offset (negative for unknown)
 * 
* @author Matthew Pocock * @author Greg Cox */ public class ParserException extends Exception { private String locator = null; private int lineNumber = -1; private int character = -1; private String line = null; public ParserException(String detail) { super(detail); } public ParserException(String detail, String locator) { super(detail); this.locator = locator; } public ParserException(String detail, String locator, int line) { super(detail); this.locator = locator; this.lineNumber = line; } public ParserException(String detail, String locator, int lineNumber, String line) { super(detail); this.locator = locator; this.lineNumber = lineNumber; this.line = line; } public ParserException(String detail, String locator, int lineNumber, String line, int character) { super(detail); this.locator = locator; this.lineNumber = lineNumber; this.character = character; this.line = line; } public ParserException(Throwable t) { super(t); } /** * @deprecated use new ParserException(detail, t) */ public ParserException(Throwable t, String detail) { this(detail, t); } public ParserException(String message, Throwable cause) { super(message, cause); } public ParserException(Throwable t, String detail, String locator) { super(detail, t); this.locator = locator; } public ParserException(Throwable t, String detail, String locator, int line) { super(detail, t); this.locator = locator; this.lineNumber = line; } public ParserException( Throwable t, String detail, String locator, int lineNumber, String line) { super(detail, t); this.locator = locator; this.lineNumber = lineNumber; this.line = line; } public ParserException( Throwable t, String detail, String locator, int lineNumber, String line, int character) { super(detail, t); this.locator = locator; this.lineNumber = lineNumber; this.character = character; this.line = line; } /** * Get a locator for the stream which caused this exception. * * @return A locator string, or null if none is * known. */ public String getLocator() { return locator; } /** * Get the line number in the stream where this exception occured. * * @return A positive integer line number, or -1 if not known. */ public int getLineNumber() { return lineNumber; } /** * Get the character offset in the line where an error was detected. * * @return The first character in the line where the parser detected * an error, or -1 if the exception effects the whole line. */ public int getCharacterOffset() { return character; } /** * Get the text of the line where the exception occured. * * @return The text of the line, or null if not known. */ public String getLine() { return line; } /** * Represent this exception as a string. This includes * the default exception toString representation, followed * by details of the location where the error occured, if * they were supplied when constructing this exception. * * @return A string representation of this exception. */ public String toString() { StringBuffer sb = new StringBuffer(super.toString()); if (locator != null) { sb.append('\n'); sb.append("Parsing location: "); sb.append(locator); } if (lineNumber >= 0) { sb.append('\n'); sb.append("Parsing line: "); sb.append(lineNumber); } if (line != null) { sb.append('\n'); sb.append(line); if (character >= 0) { sb.append('\n'); for (int i = 0; i < character; ++i) sb.append(' '); sb.append('^'); } } sb.append('\n'); return sb.substring(0); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy