# Class JMSException

java.lang.Object
java.lang.Throwable
java.lang.Exception
jakarta.jms.JMSException
com.sun.messaging.jms.JMSException

All Implemented Interfaces:
  `com.sun.messaging.jmq.jmsclient.logging.Loggable, Serializable`

public class JMSException extends jakarta.jms.JMSException implements com.sun.messaging.jmq.jmsclient.logging.Loggable

This class encapsulates MQ JMSExceptions.

It provides the following information:

- A provider-specific string describing the error. This string is the standard exception message and is available via the `getMessage` method.
- A provider-specific string error code
- A reference to another exception. Often a JMS API exception will be the result of a lower-level problem. If appropriate, this lower-level exception can be linked to the JMS API exception.

See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `JMSException(String reason)`
  Constructs a `JMSException` with the specified reason and with the error code defaulting to null.
  `JMSException(String reason, String errorCode)`
  Constructs a `JMSException` with the specified reason and error code.
  `JMSException(String reason, String errorCode, Throwable cause)`
  Constructs a `JMSException` with the specified reason, error code, and a specified cause.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `getLogState()`
  get logging state of this object.
  `void`
  `setLinkedException(Exception ex)`
  This method will also set the cause of the `JMSException`.
  `void`
  `setLogState(boolean state)`
  set state to true if this object is logged.

  ### Methods inherited from class jakarta.jms.JMSException

  `getErrorCode, getLinkedException`

  ### Methods inherited from class Throwable

  `addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### JMSException

    public JMSException(String reason, String errorCode)
    Constructs a `JMSException` with the specified reason and error code.
    Parameters:
      `reason` - a description of the exception
      `errorCode` - a string specifying the vendor-specific error code

  - ### JMSException

    public JMSException(String reason)
    Constructs a `JMSException` with the specified reason and with the error code defaulting to null.
    Parameters:
      `reason` - a description of the exception

  - ### JMSException

    public JMSException(String reason, String errorCode, Throwable cause)
    Constructs a `JMSException` with the specified reason, error code, and a specified cause.
    Parameters:
      `reason` - a description of the exception
      `errorCode` - a string specifying the vendor-specific error code
      `cause` - the cause. A `null` value is permitted, and indicates that the cause is non-existent or unknown.

- ## Method Details

  - ### setLinkedException

    public void setLinkedException(Exception ex)

    This method will also set the cause of the `JMSException`. When a backtrace of the `JMSException` is printed using `printStackTrace` using `printStackTrace` a backtrace of the cause will also get printed.

    Overrides:
      `setLinkedException` in class `jakarta.jms.JMSException`

  - ### setLogState

    public void setLogState(boolean state)
    set state to true if this object is logged.
    Specified by:
      `setLogState` in interface `com.sun.messaging.jmq.jmsclient.logging.Loggable`
    Parameters:
      `state` - boolean

  - ### getLogState

    public boolean getLogState()
    get logging state of this object.
    Specified by:
      `getLogState` in interface `com.sun.messaging.jmq.jmsclient.logging.Loggable`
    Returns:
      boolean true if this object is logged.