org.apache.solr.common

## Class SolrException

- java.lang.Object
- - java.lang.Throwable
  - - java.lang.Exception
    - - java.lang.RuntimeException
      - - org.apache.solr.common.SolrException

All Implemented Interfaces:
  Serializable

Direct Known Subclasses:
  CloudSolrClient.RouteException, Http2SolrClient.RemoteSolrException, HttpSolrClient.RemoteSolrException, NonExistentCoreException, ZooKeeperException

    public class SolrException
    extends RuntimeException

See Also:
  Serialized Form

### Nested Class Summary

Nested Classes
`static class` `SolrException.ErrorCode` This list of valid HTTP Status error codes that Solr may return in the case of a "Server Side" error.

### Field Summary

Fields
`static String` `ERROR_CLASS`
`static Set<String>` `ignorePatterns` For test code - do not log exceptions that match any of these regular expressions.
`protected NamedList<String>` `metadata`
`static String` `ROOT_ERROR_CLASS`

### Constructor Summary

Constructors
`protected` `SolrException(int code, String msg, Throwable th)` Constructor that can set arbitrary http status code.
`` `SolrException(SolrException.ErrorCode code, String msg)`
`` `SolrException(SolrException.ErrorCode code, String msg, Throwable th)`
`` `SolrException(SolrException.ErrorCode code, Throwable th)`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`int` `code()` The HTTP Status code associated with this Exception.
`static String` `doIgnore(Throwable t, String m)` Returns null if this exception does not match any ignore patterns, or a message string to use if it does.
`NamedList<String>` `getMetadata()`
`String` `getMetadata(String key)`
`static Throwable` `getRootCause(Throwable t)`
`String` `getRootThrowable()`
`String` `getThrowable()`
`void` `log(org.slf4j.Logger log)`
`static void` `log(org.slf4j.Logger log, String msg)`
`static void` `log(org.slf4j.Logger log, String msg, Throwable e)`
`static void` `log(org.slf4j.Logger log, Throwable e)`
`void` `logDebugWithMdc(org.slf4j.Logger logger, String msg)`
`void` `logInfoWithMdc(org.slf4j.Logger logger, String msg)`
`void` `logWarnWithMdc(org.slf4j.Logger logger, String msg)`
`void` `setMetadata(NamedList<String> metadata)`
`void` `setMetadata(String key, String value)`
`static String` `toStr(Throwable e)`
`String` `toString()`

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

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

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

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

### Field Detail

#### ROOT_ERROR_CLASS

    public static final String ROOT_ERROR_CLASS

See Also:
  Constant Field Values

#### ERROR_CLASS

    public static final String ERROR_CLASS

See Also:
  Constant Field Values

#### metadata

    protected NamedList<String> metadata

#### ignorePatterns

    public static Set<String> ignorePatterns

For test code - do not log exceptions that match any of these regular expressions. A `is recommended`.

### Constructor Detail

#### SolrException

    public SolrException(SolrException.ErrorCode code,
                         String msg)

#### SolrException

    public SolrException(SolrException.ErrorCode code,
                         String msg,
                         Throwable th)

#### SolrException

    public SolrException(SolrException.ErrorCode code,
                         Throwable th)

#### SolrException

    protected SolrException(int code,
                            String msg,
                            Throwable th)

Constructor that can set arbitrary http status code. Not for use in Solr, but may be used by clients in subclasses to capture errors returned by the servlet container or other HTTP proxies.

### Method Detail

#### code

    public int code()

The HTTP Status code associated with this Exception. For SolrExceptions thrown by Solr "Server Side", this should valid `SolrException.ErrorCode`, however client side exceptions may contain an arbitrary error code based on the behavior of the Servlet Container hosting Solr, or any HTTP Proxies that may exist between the client and the server.

Returns:
  The HTTP Status code associated with this Exception

#### setMetadata

    public void setMetadata(NamedList<String> metadata)

#### getMetadata

    public NamedList<String> getMetadata()

#### getMetadata

    public String getMetadata(String key)

#### setMetadata

    public void setMetadata(String key,
                            String value)

#### getThrowable

    public String getThrowable()

#### getRootThrowable

    public String getRootThrowable()

#### log

    public void log(org.slf4j.Logger log)

#### log

    public static void log(org.slf4j.Logger log,
                           Throwable e)

#### log

    public static void log(org.slf4j.Logger log,
                           String msg,
                           Throwable e)

#### log

    public static void log(org.slf4j.Logger log,
                           String msg)

#### toString

    public String toString()

Overrides:
  `toString` in class `Throwable`

#### toStr

    public static String toStr(Throwable e)

#### doIgnore

    public static String doIgnore(Throwable t,
                                  String m)

Returns null if this exception does not match any ignore patterns, or a message string to use if it does.

#### getRootCause

    public static Throwable getRootCause(Throwable t)

#### logInfoWithMdc

    public void logInfoWithMdc(org.slf4j.Logger logger,
                               String msg)

#### logDebugWithMdc

    public void logDebugWithMdc(org.slf4j.Logger logger,
                                String msg)

#### logWarnWithMdc

    public void logWarnWithMdc(org.slf4j.Logger logger,
                               String msg)