1 /* 2 * Copyright (c) 2009, 2020, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package javax.xml.stream; 27 28 /** 29 * The base exception for unexpected processing errors. This Exception 30 * class is used to report well-formedness errors as well as unexpected 31 * processing conditions. 32 * @version 1.0 33 * @author Copyright (c) 2009 by Oracle Corporation. All Rights Reserved. 34 * @since 1.6 35 */ 36 37 public class XMLStreamException extends Exception { 38 private static final long serialVersionUID = 2018819321811497362L; 39 40 /** 41 * The nested exception. 42 */ 43 protected Throwable nested; 44 45 /** 46 * The location of the error. 47 */ 48 protected Location location; 49 50 /** 51 * Default constructor 52 */ 53 public XMLStreamException(){ 54 super(); 55 } 56 57 /** 58 * Construct an exception with the assocated message. 59 * 60 * @param msg the message to report 61 */ 62 public XMLStreamException(String msg) { 63 super(msg); 64 } 65 66 /** 67 * Construct an exception with the assocated exception 68 * 69 * @param th a nested exception 70 */ 71 public XMLStreamException(Throwable th) { 72 super(th); 73 nested = th; 74 } 75 76 /** 77 * Construct an exception with the assocated message and exception 78 * 79 * @param th a nested exception 80 * @param msg the message to report 81 */ 82 public XMLStreamException(String msg, Throwable th) { 83 super(msg, th); 84 nested = th; 85 } 86 87 /** 88 * Construct an exception with the assocated message, exception and location. 89 * 90 * @param th a nested exception 91 * @param msg the message to report 92 * @param location the location of the error 93 */ 94 public XMLStreamException(String msg, Location location, Throwable th) { 95 super("ParseError at [row,col]:["+location.getLineNumber()+","+ 96 location.getColumnNumber()+"]\n"+ 97 "Message: "+msg); 98 nested = th; 99 this.location = location; 100 } 101 102 /** 103 * Construct an exception with the assocated message, exception and location. 104 * 105 * @param msg the message to report 106 * @param location the location of the error 107 */ 108 public XMLStreamException(String msg, 109 Location location) { 110 super("ParseError at [row,col]:["+location.getLineNumber()+","+ 111 location.getColumnNumber()+"]\n"+ 112 "Message: "+msg); 113 this.location = location; 114 } 115 116 117 /** 118 * Gets the nested exception. 119 * 120 * @return Nested exception 121 */ 122 public Throwable getNestedException() { 123 return nested; 124 } 125 126 /** 127 * Gets the location of the exception 128 * 129 * @return the location of the exception, may be null if none is available 130 */ 131 public Location getLocation() { 132 return location; 133 } 134 135 }