Botan 2.19.5 Crypto and TLS for C&

Public Member Functions | List of all members
Botan::Exception Class Reference

`#include <exceptn.h>`

Inheritance diagram for Botan::Exception:

## Public Member Functions
virtual int | error_code () const noexcept
virtual ErrorType | error_type () const noexcept
| Exception (const char *prefix, const std::string &msg)
| Exception (const std::string &msg)
| Exception (const std::string &msg, const std::exception &e)
const char * | what () const noexcept override

## Detailed Description

Base class for all exceptions thrown by the library

Definition at line 85 of file exceptn.h.

## Constructor & Destructor Documentation

## ◆ Exception() [1/3]

Botan::Exception::Exception | ( | const std::string & | msg | ) |
| explicit

Avoid throwing base Exception, use a subclass

Definition at line 73 of file exceptn.cpp.

73 : m_msg(msg)
74 {}

## ◆ Exception() [2/3]

Botan::Exception::Exception | ( | const char * | prefix,
|  | const std::string & | msg
| ) |  |

Avoid throwing base Exception, use a subclass

Definition at line 80 of file exceptn.cpp.

80 :
81 m_msg(std::string(prefix) + " " + msg)
82 {}

## ◆ Exception() [3/3]

Botan::Exception::Exception | ( | const std::string & | msg,
|  | const std::exception & | e
| ) |  |

Avoid throwing base Exception, use a subclass

Definition at line 76 of file exceptn.cpp.

76 :
77 m_msg(msg + " failed with " + std::string(e.what()))
78 {}

## Member Function Documentation

## ◆ error_code()

virtual int Botan::Exception::error_code | ( |  | ) | const
| inline virtual noexcept

Return an error code associated with this exception, or otherwise 0.

The domain of this error varies depending on the source, for example on POSIX systems it might be errno, while on a Windows system it might be the result of GetLastError or WSAGetLastError. For error_type() is OpenSSLError, it will (if nonzero) be an OpenSSL error code from ERR_get_error.

Reimplemented in Botan::Compression_Error, Botan_FFI::FFI_Error, Botan::CommonCrypto_Error, Botan::PKCS11::PKCS11_ReturnError, Botan::TLS::TLS_Exception, Botan::SQL_Database::SQL_DB_Error, and Botan::System_Error.

Definition at line 112 of file exceptn.h.

112{ return 0; }

## ◆ error_type()

virtual ErrorType Botan::Exception::error_type | ( |  | ) | const
| inline virtual noexcept

Return the "type" of error which occurred.

Reimplemented in Botan::Compression_Error, Botan_FFI::FFI_Error, Botan::Roughtime::Roughtime_Error, Botan::CommonCrypto_Error, Botan::PKCS11::PKCS11_Error, Botan::TPM_Error, Botan::TLS::TLS_Exception, Botan::SQL_Database::SQL_DB_Error, Botan::Invalid_Argument, Botan::Invalid_Key_Length, Botan::Invalid_IV_Length, Botan::Encoding_Error, Botan::Decoding_Error, Botan::Invalid_State, Botan::Key_Not_Set, Botan::Lookup_Error, Botan::Invalid_Authentication_Tag, Botan::Stream_IO_Error, Botan::System_Error, Botan::Internal_Error, Botan::Not_Implemented, Botan::HTTP::HTTP_Error, and Botan::Integer_Overflow_Detected.

Definition at line 101 of file exceptn.h.

101{ return Botan::ErrorType::Unknown; }
Botan::ErrorType::Unknown
@ Unknown

References Botan::Unknown.

## ◆ what()

const char * Botan::Exception::what | ( |  | ) | const
| inline override noexcept

Return a descriptive string which is hopefully comprehensible to a developer. It will likely not be useful for an end user.

The string has no particular format, and the content of exception messages may change from release to release. Thus the main use of this function is for logging or debugging.

Definition at line 96 of file exceptn.h.

96{ return m_msg.c_str(); }

Referenced by Botan::TLS::Client_Key_Exchange::Client_Key_Exchange(), and Botan_FFI::ffi_guard_thunk().

The documentation for this class was generated from the following files:

- src/lib/utils/exceptn.h
- src/lib/utils/exceptn.cpp