package com.fasterxml.jackson.core;

Base class for all Jackson-produced checked exceptions.

For Jackson 2.x this base type is not widely used (instead, its main subtype JsonProcessingException is): it is provided more for forwards-compatibility purposes as 3.x will base all other types directly on it and deprecate JsonProcessingException (as well as chance its type to unchecked).

Since:2.12
/** * Base class for all Jackson-produced checked exceptions. *<p> * For Jackson 2.x this base type is not widely used (instead, its main subtype * {@link JsonProcessingException} is): it is provided more for forwards-compatibility * purposes as 3.x will base all other types directly on it and deprecate * {@link JsonProcessingException} (as well as chance its type to unchecked). * * @since 2.12 */
public abstract class JacksonException extends java.io.IOException { private final static long serialVersionUID = 123; // eclipse complains otherwise protected JacksonException(String msg) { super(msg); } protected JacksonException(Throwable t) { super(t); } protected JacksonException(String msg, Throwable rootCause) { super(msg, rootCause); // 23-Sep-2020, tatu: before 2.12, had null checks for some reason... // But I don't think that is actually required; Javadocs for // `java.lang.Throwable` constructor claim {@code null} is fine. /* if (rootCause != null) { initCause(rootCause); }*/ } /* /********************************************************** /* Extended API /********************************************************** */
Accessor for location information related to position within input or output (depending on operation), if available; if not available may return null.

Accuracy of location information depends on backend (format) as well as (in some cases) operation being performed.

Returns:Location in input or output that triggered the problem reported, if available; null otherwise.
/** * Accessor for location information related to position within input * or output (depending on operation), if available; if not available * may return {@code null}. *<p> * Accuracy of location information depends on backend (format) as well * as (in some cases) operation being performed. * * @return Location in input or output that triggered the problem reported, if * available; {@code null} otherwise. */
public abstract JsonLocation getLocation();
Method that allows accessing the original "message" argument, without additional decorations (like location information) that overridden Throwable.getMessage adds.
Returns:Original, unmodified message argument used to construct this exception instance
/** * Method that allows accessing the original "message" argument, * without additional decorations (like location information) * that overridden {@link #getMessage} adds. * * @return Original, unmodified {@code message} argument used to construct * this exception instance */
public abstract String getOriginalMessage();
Method that allows accessing underlying processor that triggered this exception; typically either JsonParser or JsonGenerator for exceptions that originate from streaming API, but other abstractions when thrown by databinding.

Note that it is possible that `null` may be returned if code throwing exception either has no access to processor; or has not been retrofitted to set it; this means that caller needs to take care to check for nulls. Subtypes override this method with co-variant return type, for more type-safe access.

Returns:Originating processor, if available; null if not.
/** * Method that allows accessing underlying processor that triggered * this exception; typically either {@link JsonParser} or {@link JsonGenerator} * for exceptions that originate from streaming API, but other abstractions * when thrown by databinding. *<p> * Note that it is possible that `null` may be returned if code throwing * exception either has no access to processor; or has not been retrofitted * to set it; this means that caller needs to take care to check for nulls. * Subtypes override this method with co-variant return type, for more * type-safe access. * * @return Originating processor, if available; {@code null} if not. */
public abstract Object getProcessor(); }