1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.pluto.portalImpl.xml;
21
22 /***
23 ** The <CODE>XMLException</CODE> class defines a general exception
24 ** that may occur during portlet.xml or web.xml handling
25 **
26
27 **/
28
29 public class XmlException extends java.lang.Exception
30 {
31
32 private Throwable throwable = null;
33
34 /***
35 ** Constructs a new xml exception.
36 **/
37
38 public XmlException ()
39 {
40 super();
41 }
42
43 /***
44 ** Constructs a new xml exception with the given text.
45 **
46 ** @param text
47 ** the exception text
48 **/
49
50 public XmlException (String text)
51 {
52 super(text);
53 }
54
55 /***
56 ** Constructs a new xml exception to throw an
57 ** exception and include a message about the "root case" that interfered
58 ** with its normal operation, including a description message.
59 **
60 ** @param text
61 ** the exception text
62 ** @param cause
63 ** the root cause
64 **/
65
66 public XmlException (String text, Throwable cause)
67 {
68 super (text);
69 throwable = cause;
70 }
71
72 /***
73 ** Constructs a new xml exception to throw an
74 ** exception. The exception's message is based on the localized message
75 ** of the underlying exception.
76 **
77 ** @param cause
78 ** the root cause
79 **/
80
81 public XmlException (Throwable cause)
82 {
83 super(cause.getLocalizedMessage());
84 throwable = cause;
85 }
86
87 /***
88 * Returns the exception that caused this xml exception.
89 *
90 *
91 * @return the <code>Throwable</code>
92 * that caused this xml exception
93 *
94 */
95
96 public Throwable getRootCause()
97 {
98 return throwable;
99 }
100
101 /***
102 * Prints the stack trace of this exception to the standard error stream.
103 */
104 public void printStackTrace()
105 {
106 this.printStackTrace(System.err);
107 }
108
109 /***
110 * Prints the stack trace of this exception to the specified print stream.
111 *
112 * @param out the <code>PrintStream</code> to use for output
113 */
114 public void printStackTrace(java.io.PrintStream out)
115 {
116 this.printStackTrace(new java.io.PrintWriter(out, true));
117 }
118
119 /***
120 * Prints the stack trace of this exception to the specified print writer.
121 *
122 * @param out the <code>PrintWriter</code> to use for output.
123 */
124 public void printStackTrace(java.io.PrintWriter out)
125 {
126 super.printStackTrace(out);
127
128 if( getRootCause () != null )
129 {
130 out.println();
131 out.print("Nested Exception is ");
132 getRootCause ().printStackTrace(out);
133 }
134 }
135
136 }