1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package de.bea.domingo;
24
25 import java.io.PrintStream;
26 import java.io.PrintWriter;
27
28 import de.bea.domingo.exception.CascadingThrowable;
29 import de.bea.domingo.exception.ExceptionUtil;
30
31 /***
32 * Exception thrown from the domingo API.
33 *
34 * @author <a href=mailto:kriede@users.sourceforge.net>Kurt Riede</a>
35 */
36 public class DNotesException extends Exception implements CascadingThrowable {
37
38 /*** serial version ID for serialization. */
39 private static final long serialVersionUID = 3257570589891048500L;
40
41 /*** detail error of the exception. */
42 private final Throwable fCause;
43
44 /***
45 * Construct a new <code>DNotesException</code> instance.
46 *
47 * @param message The detail message for this exception.
48 */
49 public DNotesException(final String message) {
50 super(message);
51 fCause = null;
52 }
53
54 /***
55 * Construct a new <code>DNotesException</code> instance.
56 *
57 * @param cause the cause of this throwable or <code>null</code> if the
58 * cause is nonexistent or unknown.
59 */
60 public DNotesException(final Throwable cause) {
61 super();
62 fCause = cause;
63 }
64
65 /***
66 * Construct a new <code>DNotesException</code> instance.
67 *
68 * @param message The detail message for this exception.
69 * @param cause the cause of this throwable or <code>null</code> if the
70 * cause is nonexistent or unknown.
71 */
72 public DNotesException(final String message, final Throwable cause) {
73 super(message);
74 fCause = cause;
75 }
76
77 /***
78 * Returns the detail error that caused the exception.
79 *
80 * @return the cause of this throwable or <code>null</code> if the
81 * cause is nonexistent or unknown.
82 * @see java.lang.Throwable#getCause()
83 */
84 public final Throwable getCause() {
85 return fCause;
86 }
87
88 /***
89 * {@inheritDoc}
90 * @see java.lang.Throwable#getMessage()
91 */
92 public final String getMessage() {
93 if (super.getMessage() != null) {
94 return super.getMessage();
95 }
96 if (fCause != null) {
97 return fCause.toString();
98 } else {
99 return null;
100 }
101 }
102
103 /***
104 * {@inheritDoc}
105 * @see java.lang.Throwable#printStackTrace()
106 */
107 public final void printStackTrace() {
108 ExceptionUtil.printStackTrace(this);
109 }
110
111 /***
112 * {@inheritDoc}
113 * @see java.lang.Throwable#printStackTrace(java.io.PrintStream)
114 */
115 public final void printStackTrace(final PrintStream out) {
116 ExceptionUtil.printStackTrace(this, out);
117 }
118
119 /***
120 * {@inheritDoc}
121 * @see java.lang.Throwable#printStackTrace(java.io.PrintWriter)
122 */
123 public final void printStackTrace(final PrintWriter out) {
124 ExceptionUtil.printStackTrace(this, out);
125 }
126
127 /***
128 * {@inheritDoc}
129 * @see de.bea.domingo.exception.CascadingThrowable#printPartialStackTrace(java.io.PrintWriter)
130 */
131 public final void printPartialStackTrace(final PrintWriter out) {
132 super.printStackTrace(out);
133 }
134 }