1 /************************************************************************
2 * Copyright (c) 2000-2006 The Apache Software Foundation. *
3 * All rights reserved. *
4 * ------------------------------------------------------------------- *
5 * Licensed under the Apache License, Version 2.0 (the "License"); you *
6 * may not use this file except in compliance with the License. You *
7 * may obtain a copy of the License at: *
8 * *
9 * http://www.apache.org/licenses/LICENSE-2.0 *
10 * *
11 * Unless required by applicable law or agreed to in writing, software *
12 * distributed under the License is distributed on an "AS IS" BASIS, *
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or *
14 * implied. See the License for the specific language governing *
15 * permissions and limitations under the License. *
16 ***********************************************************************/
17
18 package org.apache.james.nntpserver;
19
20 /***
21 * Exception Wrapper, like javax.servlet.ServletException.
22 * Purpose is to catch and wrap exceptions into unchecked NNTP specific.
23 * Protocol handler catches the exception and returns error info to client.
24 * Error Information is obtained by calling 'getMessage'
25 *
26 */
27 public class NNTPException extends RuntimeException {
28
29 /***
30 * The encapsulated Throwable
31 */
32 private final Throwable t;
33
34 /***
35 * Create an NNTPException with an error message and no
36 * encapsulated <code>Throwable</code>
37 *
38 * @param msg the error message for this exception
39 */
40 public NNTPException(String msg) {
41 super(msg);
42 this.t = null;
43 }
44
45 /***
46 * Create an NNTPException with an error message and an
47 * encapsulated <code>Throwable</code>
48 *
49 * @param msg the error message for this exception
50 * @param t the encapsulated <code>Throwable</code>
51 */
52 public NNTPException(String msg,Throwable t) {
53 super(msg+((t!=null)?": "+t.toString():""));
54 this.t = t;
55 }
56
57 /***
58 * Create an NNTPException with an
59 * encapsulated <code>Throwable</code>
60 *
61 * @param t the encapsulated <code>Throwable</code>
62 */
63 public NNTPException(Throwable t) {
64 super(t.toString());
65 this.t = t;
66 }
67 }