second-transfer-0.6.1.0: Second Transfer HTTP/2 web server

Safe HaskellSafe
LanguageHaskell2010

SecondTransfer.Exception

Contents

Description

 

Synopsis

Exceptions thrown by the HTTP/2 sessions

data HTTP2SessionException

Abstract exception. All HTTP/2 exceptions derive from here

Constructors

forall e . Exception e => HTTP2SessionException e 

data FramerException

Abstract exception. Thrown when encoding/decoding of a frame fails

Constructors

forall e . Exception e => FramerException e 

data BadPrefaceException

Thrown when the HTTP/2 connection prefix doesn't match the expected prefix.

Constructors

BadPrefaceException 

data HTTP11Exception

Abstract exception. All HTTP/1.1 related exceptions derive from here. Notice that this includes a lot of logical errors and they can be raised when handling HTTP/2 sessions as well

Constructors

forall e . Exception e => HTTP11Exception e 

data HTTP500PrecursorException

Abstract exception. It is an error if an exception of this type bubbles to this library, but we will do our best to handle it gracefully. All internal error precursors at the workers can thus inherit from here to have a fallback option in case they forget to handle the error. This exception inherits from HTTP11Exception

Constructors

forall e . Exception e => HTTP500PrecursorException e 

convertHTTP500PrecursorExceptionToException :: Exception e => e -> SomeException

Use the traditional idiom if you need to derive from HTTP500PrecursorException, this is one of the helpers

getHTTP500PrecursorExceptionFromException :: Exception e => SomeException -> Maybe e

Use the traditional idiom if you need to derive from HTTP500PrecursorException, this is one of the helpers

data ContentLengthMissingException

Thrown with HTTP1.1 over HTTP1.1 sessions when the response body or the request body doesn't include a Content-Length header field, given that should have included it

Exceptions related to the IO layer

data IOProblem

Throw exceptions derived from this (e.g, GenericIOProblem below) to have the HTTP/2 session to terminate gracefully.

Constructors

forall e . Exception e => IOProblem e 

data GenericIOProblem

A concrete case of the above exception. Throw one of this if you don't want to implement your own type. Use IOProblem in catch signatures.

Constructors

GenericIOProblem 

data StreamCancelledException

This exception will be raised inside a CoherentWorker when the underlying stream is cancelled (STREAM_RESET in HTTP/2). Do any necessary cleanup in a handler, or simply use the fact that the exception is asynchronously delivered to your CoherentWorker Haskell thread, giving you an opportunity to interrupt any blocked operations.

Internal exceptions

data HTTP2ProtocolException

Concrete exception. Used internally to signal that the client violated the protocol. Clients of the library shall never see this exception.