# Module type Netsys_crypto_types.TLS_EXCEPTIONS

    module type TLS_EXCEPTIONS = sig .. end

The exceptions the TLS provider may use (in addition to OCaml's built-in exception). In Ocamlnet, these exceptions are actually defined in `Netsys_types`.

    exception EAGAIN_RD

    exception EAGAIN_WR

A read or write cannot be done because the descriptor is in non-blocking mode and would block. This corresponds to the `Unix.EAGAIN` error but includes whether it was a read or write.

When the read or write is possible, the interrupted function should simply be again called.

These two exceptions are preferred by TLS providers.

    exception TLS_switch_request

The server requested a rehandshake (this exception is thrown in the client)

    exception TLS_switch_response of bool

The client accepted or denied a rehandshake (this exception is thrown in the server). `true` means acceptance.

    exception TLS_error of string

A fatal error occurred (i.e. the session needs to be terminated). The string is a symbol identifying the error.

    exception TLS_warning of string

A non-fatal error occurred. The interrupted function should be called again. The string is a symbol identifying the warning.