1    /*
2     *  ====================================================================
3     *  The Apache Software License, Version 1.1
4     *
5     *  Copyright (c) 2000 The Apache Software Foundation.  All rights
6     *  reserved.
7     *
8     *  Redistribution and use in source and binary forms, with or without
9     *  modification, are permitted provided that the following conditions
10    *  are met:
11    *
12    *  1. Redistributions of source code must retain the above copyright
13    *  notice, this list of conditions and the following disclaimer.
14    *
15    *  2. Redistributions in binary form must reproduce the above copyright
16    *  notice, this list of conditions and the following disclaimer in
17    *  the documentation and/or other materials provided with the
18    *  distribution.
19    *
20    *  3. The end-user documentation included with the redistribution,
21    *  if any, must include the following acknowledgment:
22    *  "This product includes software developed by the
23    *  Apache Software Foundation (http://www.apache.org/)."
24    *  Alternately, this acknowledgment may appear in the software itself,
25    *  if and wherever such third-party acknowledgments normally appear.
26    *
27    *  4. The names "Apache" and "Apache Software Foundation" must
28    *  not be used to endorse or promote products derived from this
29    *  software without prior written permission. For written
30    *  permission, please contact apache@apache.org.
31    *
32    *  5. Products derived from this software may not be called "Apache",
33    *  nor may "Apache" appear in their name, without prior written
34    *  permission of the Apache Software Foundation.
35    *
36    *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37    *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38    *  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39    *  DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40    *  ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41    *  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42    *  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43    *  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44    *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45    *  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46    *  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47    *  SUCH DAMAGE.
48    *  ====================================================================
49    *
50    *  This software consists of voluntary contributions made by many
51    *  individuals on behalf of the Apache Software Foundation.  For more
52    *  information on the Apache Software Foundation, please see
53    *  <http://www.apache.org/>.
54    */
55   package org.apache.poi.hpsf;
56   
57   /**
58    *  <p>
59    *
60    *  This exception is the superclass of all other unchecked exceptions thrown in
61    *  this package. It supports a nested "reason" throwable, i.e. an exception
62    *  that caused this one to be thrown.</p>
63    *
64    *@author     Rainer Klute (klute@rainer-klute.de)
65    *@created    May 10, 2002
66    *@version    $Id: HPSFRuntimeException.java,v 1.3 2002/05/01 09:31:52 klute Exp
67    *      $
68    *@since      2002-02-09
69    */
70   public class HPSFRuntimeException extends RuntimeException {
71   
72       private Throwable reason;
73   
74   
75   
76       /**
77        *  <p>
78        *
79        *  Creates a new {@link HPSFRuntimeException}.</p>
80        */
81       public HPSFRuntimeException() {
82           super();
83       }
84   
85   
86   
87       /**
88        *  <p>
89        *
90        *  Creates a new {@link HPSFRuntimeException} with a message string.</p>
91        *
92        *@param  msg  Description of the Parameter
93        */
94       public HPSFRuntimeException(final String msg) {
95           super(msg);
96       }
97   
98   
99   
100      /**
101       *  <p>
102       *
103       *  Creates a new {@link HPSFRuntimeException} with a reason.</p>
104       *
105       *@param  reason  Description of the Parameter
106       */
107      public HPSFRuntimeException(final Throwable reason) {
108          super();
109          this.reason = reason;
110      }
111  
112  
113  
114      /**
115       *  <p>
116       *
117       *  Creates a new {@link HPSFRuntimeException} with a message string and a
118       *  reason.</p>
119       *
120       *@param  msg     Description of the Parameter
121       *@param  reason  Description of the Parameter
122       */
123      public HPSFRuntimeException(final String msg, final Throwable reason) {
124          super(msg);
125          this.reason = reason;
126      }
127  
128  
129  
130      /**
131       *  <p>
132       *
133       *  Returns the {@link Throwable} that caused this exception to be thrown or
134       *  <code>null</code> if there was no such {@link Throwable}.</p>
135       *
136       *@return    The reason value
137       */
138      public Throwable getReason() {
139          return reason;
140      }
141  
142  }
143