KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > springframework > jms > JmsException


1 /*
2  * Copyright 2002-2006 the original author or authors.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.springframework.jms;
18
19 import javax.jms.JMSException JavaDoc;
20
21 import org.springframework.core.NestedRuntimeException;
22
23 /**
24  * Base class for exception thrown by the framework whenever it
25  * encounters a problem related to JMS.
26  *
27  * @author Les Hazlewood
28  * @author Juergen Hoeller
29  * @since 1.1
30  */

31 public abstract class JmsException extends NestedRuntimeException {
32
33     /**
34      * Constructor that takes a message.
35      * @param msg the detail message
36      */

37     public JmsException(String JavaDoc msg) {
38         super(msg);
39     }
40
41     /**
42      * Constructor that allows a message and a root cause.
43      * @param msg the detail message
44      * @param cause the cause of the exception. This argument is generally
45      * expected to be a proper subclass of {@link javax.jms.JMSException},
46      * but can also be a JNDI NamingException or the like.
47      */

48     public JmsException(String JavaDoc msg, Throwable JavaDoc cause) {
49         super(msg, cause);
50     }
51
52     /**
53      * Constructor that allows a plain root cause, intended for
54      * subclasses mirroring corresponding <code>javax.jms</code> exceptions.
55      * @param cause the cause of the exception. This argument is generally
56      * expected to be a proper subclass of {@link javax.jms.JMSException}.
57      */

58     public JmsException(Throwable JavaDoc cause) {
59         super(cause != null ? cause.getMessage() : null, cause);
60     }
61
62     /**
63      * Convenience method to get the vendor specific error code if
64      * the root cause was an instance of JMSException.
65      * @return a string specifying the vendor-specific error code if the
66      * root cause is an instance of JMSException, or <code>null</code>
67      */

68     public String JavaDoc getErrorCode() {
69         if (getCause() instanceof JMSException JavaDoc) {
70             return ((JMSException JavaDoc) getCause()).getErrorCode();
71         }
72         return null;
73     }
74     
75     /**
76      * Return the detail message, including the message from the linked exception
77      * if there is one.
78      * @see javax.jms.JMSException#getLinkedException
79      */

80     public String JavaDoc getMessage() {
81         String JavaDoc message = super.getMessage();
82         Throwable JavaDoc cause = getCause();
83         if (cause instanceof JMSException JavaDoc) {
84             Exception JavaDoc linkedEx = ((JMSException JavaDoc) cause).getLinkedException();
85             if (linkedEx != null) {
86                 message = message + "; nested exception is " + linkedEx;
87             }
88         }
89         return message;
90     }
91
92 }
93
Popular Tags