public abstract class **QuicException** extends [NetworkException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html)  
Subclass of [NetworkException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html) which contains a detailed
[QUIC](https://www.chromium.org/quic) error code from [QuicErrorCode](https://cs.chromium.org/search/?q=symbol:%5CbQuicErrorCode%5Cb). An
instance of `QuicException` is passed to `onFailed` callbacks when the error code is
[NetworkException.ERROR_QUIC_PROTOCOL_FAILED](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_QUIC_PROTOCOL_FAILED).  

### Inherited Constant Summary

From class [org.chromium.net.NetworkException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html)  

|-----|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|
| int | [ERROR_ADDRESS_UNREACHABLE](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_ADDRESS_UNREACHABLE)     | Error code indicating the IP address being contacted is unreachable, meaning there is no route to the specified host or network. |
| int | [ERROR_CONNECTION_CLOSED](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_CONNECTION_CLOSED)         | Error code indicating the connection was closed unexpectedly.                                                                    |
| int | [ERROR_CONNECTION_REFUSED](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_CONNECTION_REFUSED)       | Error code indicating the connection attempt was refused.                                                                        |
| int | [ERROR_CONNECTION_RESET](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_CONNECTION_RESET)           | Error code indicating the connection was unexpectedly reset.                                                                     |
| int | [ERROR_CONNECTION_TIMED_OUT](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_CONNECTION_TIMED_OUT)   | Error code indicating the connection attempt timed out.                                                                          |
| int | [ERROR_HOSTNAME_NOT_RESOLVED](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_HOSTNAME_NOT_RESOLVED) | Error code indicating the host being sent the request could not be resolved to an IP address.                                    |
| int | [ERROR_INTERNET_DISCONNECTED](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_INTERNET_DISCONNECTED) | Error code indicating the device was not connected to any network.                                                               |
| int | [ERROR_NETWORK_CHANGED](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_NETWORK_CHANGED)             | Error code indicating that as the request was processed the network configuration changed.                                       |
| int | [ERROR_OTHER](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_OTHER)                                 | Error code indicating another type of error was encountered.                                                                     |
| int | [ERROR_QUIC_PROTOCOL_FAILED](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_QUIC_PROTOCOL_FAILED)   | Error code indicating an error related to the [QUIC](https://www.chromium.org/quic) protocol.                                    |
| int | [ERROR_TIMED_OUT](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_TIMED_OUT)                         | Error code indicating a timeout expired.                                                                                         |

### Protected Constructor Summary

|---|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|   | [QuicException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/QuicException.html#QuicException(java.lang.String,%20java.lang.Throwable))(String message, Throwable cause) Constructs an exception that is caused by a QUIC protocol error. |

### Public Method Summary

|--------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract int | [getQuicDetailedErrorCode](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/QuicException.html#getQuicDetailedErrorCode())() Returns the [QUIC](https://www.chromium.org/quic) error code, which is a value from [QuicErrorCode](https://cs.chromium.org/search/?q=symbol:%5CbQuicErrorCode%5Cb). |

### Inherited Method Summary

From class [org.chromium.net.NetworkException](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html)  

|------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| abstract int     | [getCronetInternalErrorCode](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#getCronetInternalErrorCode())() Returns a Cronet internal error code.                                                                                                             |
| abstract int     | [getErrorCode](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#getErrorCode())() Returns error code, one of [ERROR_*](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#ERROR_HOSTNAME_NOT_RESOLVED). |
| abstract boolean | [immediatelyRetryable](https://developer.android.com/develop/connectivity/cronet/reference/org/chromium/net/NetworkException.html#immediatelyRetryable())() Returns `true` if retrying this request right away might succeed, `false` otherwise.                                                                          |

From class java.lang.Throwable  

|----------------------------------|-------------------------------------------|
| synchronized final void          | addSuppressed(Throwable arg0)             |
| synchronized Throwable           | fillInStackTrace()                        |
| synchronized Throwable           | getCause()                                |
| String                           | getLocalizedMessage()                     |
| String                           | getMessage()                              |
| StackTraceElement\[\]            | getStackTrace()                           |
| synchronized final Throwable\[\] | getSuppressed()                           |
| synchronized Throwable           | initCause(Throwable arg0)                 |
| void                             | printStackTrace()                         |
| void                             | printStackTrace(PrintWriter arg0)         |
| void                             | printStackTrace(PrintStream arg0)         |
| void                             | setStackTrace(StackTraceElement\[\] arg0) |
| String                           | toString()                                |

From class java.lang.Object  

|------------------|---------------------------|
| Object           | clone()                   |
| boolean          | equals(Object arg0)       |
| void             | finalize()                |
| final Class\<?\> | getClass()                |
| int              | hashCode()                |
| final void       | notify()                  |
| final void       | notifyAll()               |
| String           | toString()                |
| final void       | wait(long arg0, int arg1) |
| final void       | wait(long arg0)           |
| final void       | wait()                    |

## Protected Constructors

#### protected
**QuicException**
(String message, Throwable cause)

Constructs an exception that is caused by a QUIC protocol error.  

##### Parameters

| message |                                                                                                                        explanation of failure.                                                                                                                         |
|  cause  | the cause (which is saved for later retrieval by the [getCause()](https://developer.android.com/develop/connectivity/cronet/reference/java/lang/Throwable.html#getCause()) method). A null value is permitted, and indicates that the cause is nonexistent or unknown. |
|---------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|

## Public Methods

#### public abstract int
**getQuicDetailedErrorCode**
()

Returns the [QUIC](https://www.chromium.org/quic) error code, which is a value
from [QuicErrorCode](https://cs.chromium.org/search/?q=symbol:%5CbQuicErrorCode%5Cb).