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

Safe HaskellSafe
LanguageHaskell2010

SecondTransfer.Exception

Contents

Description

 

Synopsis

Exceptions thrown by the HTTP/2 sessions

data HTTP2SessionException Source

Abstract exception. All HTTP/2 exceptions derive from here

Constructors

forall e . Exception e => HTTP2SessionException e 

data FramerException Source

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

Constructors

forall e . Exception e => FramerException e 

Instances

data BadPrefaceException Source

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

Constructors

BadPrefaceException 

data HTTP11Exception Source

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 

Instances

data HTTP500PrecursorException Source

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 Source

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

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

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

data ContentLengthMissingException Source

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 Source

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 

Instances

Show IOProblem Source 
Exception IOProblem Source 

data GenericIOProblem Source

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 

Instances

data StreamCancelledException Source

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 Source

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