LinkException (Java Platform SE 8 )
Keywords: javax.naming.LinkException class
Date: 2026-08-19

compact3
javax.naming

## Class LinkException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - javax.naming.NamingException
      - - javax.naming.LinkException

- All Implemented Interfaces:
    Serializable
  Direct Known Subclasses:
    LinkLoopException, MalformedLinkException

      public class LinkException
      extends NamingException

  This exception is used to describe problems encounter while resolving links. Addition information is added to the base NamingException for pinpointing the problem with the link.

  Analogous to how NamingException captures name resolution information, LinkException captures "link"-name resolution information pinpointing the problem encountered while resolving a link. All these fields may be null.

  - Link Resolved Name. Portion of link name that has been resolved.
  - Link Resolved Object. Object to which resolution of link name proceeded.
  - Link Remaining Name. Portion of link name that has not been resolved.
  - Link Explanation. Detail explaining why link resolution failed.

  A LinkException instance is not synchronized against concurrent multithreaded access. Multiple threads trying to access and modify a single LinkException instance should lock the object.

  Since:
    1.3
  See Also:
    `Context.lookupLink(javax.naming.Name)`, `LinkRef`, Serialized Form

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected String` | `linkExplanation` Contains the exception of why resolution of the link failed.
    `protected Name` | `linkRemainingName` Contains the remaining link name that has not been resolved yet.
    `protected Name` | `linkResolvedName` Contains the part of the link that has been successfully resolved.
    `protected Object` | `linkResolvedObj` Contains the object to which resolution of the part of the link was successful.

    - ### Fields inherited from class javax.naming.NamingException

      `remainingName, resolvedName, resolvedObj, rootException`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LinkException()` Constructs a new instance of LinkException.
    `LinkException(String explanation)` Constructs a new instance of LinkException with an explanation All the other fields are initialized to null.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getLinkExplanation()` Retrieves the explanation associated with the problem encounter when resolving a link.
    `Name` | `getLinkRemainingName()` Retrieves the remaining unresolved portion of the link name.
    `Name` | `getLinkResolvedName()` Retrieves the leading portion of the link name that was resolved successfully.
    `Object` | `getLinkResolvedObj()` Retrieves the object to which resolution was successful.
    `void` | `setLinkExplanation(String msg)` Sets the explanation associated with the problem encounter when resolving a link.
    `void` | `setLinkRemainingName(Name name)` Sets the remaining link name field of this exception.
    `void` | `setLinkResolvedName(Name name)` Sets the resolved link name field of this exception.
    `void` | `setLinkResolvedObj(Object obj)` Sets the link resolved object field of this exception.
    `String` | `toString()` Generates the string representation of this exception.
    `String` | `toString(boolean detail)` Generates the string representation of this exception.

    - ### Methods inherited from class javax.naming.NamingException

      `appendRemainingComponent, appendRemainingName, getCause, getExplanation, getRemainingName, getResolvedName, getResolvedObj, getRootCause, initCause, setRemainingName, setResolvedName, setResolvedObj, setRootCause`

    - ### Methods inherited from class java.lang.Throwable

      `addSuppressed, fillInStackTrace, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, printStackTrace, printStackTrace, printStackTrace, setStackTrace`

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

    - #### linkResolvedName

          protected Name linkResolvedName

      Contains the part of the link that has been successfully resolved. It is a composite name and can be null. This field is initialized by the constructors. You should access and manipulate this field through its get and set methods.
      See Also:
        `getLinkResolvedName()`, `setLinkResolvedName(javax.naming.Name)`

    - #### linkResolvedObj

          protected Object linkResolvedObj

      Contains the object to which resolution of the part of the link was successful. Can be null. This field is initialized by the constructors. You should access and manipulate this field through its get and set methods.
      See Also:
        `getLinkResolvedObj()`, `setLinkResolvedObj(java.lang.Object)`

    - #### linkRemainingName

          protected Name linkRemainingName

      Contains the remaining link name that has not been resolved yet. It is a composite name and can be null. This field is initialized by the constructors. You should access and manipulate this field through its get and set methods.
      See Also:
        `getLinkRemainingName()`, `setLinkRemainingName(javax.naming.Name)`

    - #### linkExplanation

          protected String linkExplanation

      Contains the exception of why resolution of the link failed. Can be null. This field is initialized by the constructors. You should access and manipulate this field through its get and set methods.
      See Also:
        `getLinkExplanation()`, `setLinkExplanation(java.lang.String)`

  - ### Constructor Detail

    - #### LinkException

          public LinkException(String explanation)

      Constructs a new instance of LinkException with an explanation All the other fields are initialized to null.
      Parameters:
        `explanation` - A possibly null string containing additional detail about this exception.
      See Also:
        `Throwable.getMessage()`

    - #### LinkException

          public LinkException()

      Constructs a new instance of LinkException. All the non-link-related and link-related fields are initialized to null.

  - ### Method Detail

    - #### getLinkResolvedName

          public Name getLinkResolvedName()

      Retrieves the leading portion of the link name that was resolved successfully.
      Returns:
        The part of the link name that was resolved successfully. It is a composite name. It can be null, which means the link resolved name field has not been set.
      See Also:
        `getLinkResolvedObj()`, `setLinkResolvedName(javax.naming.Name)`

    - #### getLinkRemainingName

          public Name getLinkRemainingName()

      Retrieves the remaining unresolved portion of the link name.
      Returns:
        The part of the link name that has not been resolved. It is a composite name. It can be null, which means the link remaining name field has not been set.
      See Also:
        `setLinkRemainingName(javax.naming.Name)`

    - #### getLinkResolvedObj

          public Object getLinkResolvedObj()

      Retrieves the object to which resolution was successful. This is the object to which the resolved link name is bound.
      Returns:
        The possibly null object that was resolved so far. If null, it means the link resolved object field has not been set.
      See Also:
        `getLinkResolvedName()`, `setLinkResolvedObj(java.lang.Object)`

    - #### getLinkExplanation

          public String getLinkExplanation()

      Retrieves the explanation associated with the problem encounter when resolving a link.
      Returns:
        The possibly null detail string explaining more about the problem with resolving a link. If null, it means there is no link detail message for this exception.
      See Also:
        `setLinkExplanation(java.lang.String)`

    - #### setLinkExplanation

          public void setLinkExplanation(String msg)

      Sets the explanation associated with the problem encounter when resolving a link.
      Parameters:
        `msg` - The possibly null detail string explaining more about the problem with resolving a link. If null, it means no detail will be recorded.
      See Also:
        `getLinkExplanation()`

    - #### setLinkResolvedName

          public void setLinkResolvedName(Name name)

      Sets the resolved link name field of this exception.

      `name` is a composite name. If the intent is to set this field using a compound name or string, you must "stringify" the compound name, and create a composite name with a single component using the string. You can then invoke this method using the resulting composite name.

      A copy of `name` is made and stored. Subsequent changes to `name` does not affect the copy in this NamingException and vice versa.

      Parameters:
        `name` - The name to set resolved link name to. This can be null. If null, it sets the link resolved name field to null.
      See Also:
        `getLinkResolvedName()`

    - #### setLinkRemainingName

          public void setLinkRemainingName(Name name)

      Sets the remaining link name field of this exception.

      `name` is a composite name. If the intent is to set this field using a compound name or string, you must "stringify" the compound name, and create a composite name with a single component using the string. You can then invoke this method using the resulting composite name.

      A copy of `name` is made and stored. Subsequent changes to `name` does not affect the copy in this NamingException and vice versa.

      Parameters:
        `name` - The name to set remaining link name to. This can be null. If null, it sets the remaining name field to null.
      See Also:
        `getLinkRemainingName()`

    - #### setLinkResolvedObj

          public void setLinkResolvedObj(Object obj)

      Sets the link resolved object field of this exception. This indicates the last successfully resolved object of link name.
      Parameters:
        `obj` - The object to set link resolved object to. This can be null. If null, the link resolved object field is set to null.
      See Also:
        `getLinkResolvedObj()`

    - #### toString

          public String toString()

      Generates the string representation of this exception. This string consists of the NamingException information plus the link's remaining name. This string is used for debugging and not meant to be interpreted programmatically.
      Overrides:
        `toString` in class `NamingException`
      Returns:
        The non-null string representation of this link exception.

    - #### toString

          public String toString(boolean detail)

      Generates the string representation of this exception. This string consists of the NamingException information plus the additional information of resolving the link. If 'detail' is true, the string also contains information on the link resolved object. If false, this method is the same as the form of toString() that accepts no parameters. This string is used for debugging and not meant to be interpreted programmatically.
      Overrides:
        `toString` in class `NamingException`
      Parameters:
        `detail` - If true, add information about the link resolved object.
      Returns:
        The non-null string representation of this link exception.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.