Botan  2.10.0
Crypto and TLS for C++11
Public Member Functions | Protected Member Functions | List of all members
Botan::Exception Class Reference

#include <exceptn.h>

Inheritance diagram for Botan::Exception:
Botan::BearSSL_Error Botan::CommonCrypto_Error Botan::Compression_Error Botan::HTTP::HTTP_Error Botan::Integer_Overflow_Detected Botan::Internal_Error Botan::Invalid_Argument Botan::Invalid_Authentication_Tag Botan::Invalid_State Botan::Lookup_Error Botan::No_Filesystem_Access Botan::No_Provider_Found Botan::Not_Implemented Botan::OpenSSL_Error Botan::PKCS11::PKCS11_Error Botan::SQL_Database::SQL_DB_Error Botan::Stream_IO_Error Botan::System_Error Botan::TLS::TLS_Exception Botan::TPM_Error Botan_FFI::FFI_Error

Public Member Functions

virtual int error_code () const noexcept
 
virtual ErrorType error_type () const noexcept
 
const char * what () const noexcept override
 

Protected Member Functions

 Exception (const std::string &msg)
 
 Exception (const char *prefix, const std::string &msg)
 
 Exception (const std::string &msg, const std::exception &e)
 

Detailed Description

Base class for all exceptions thrown by the library

Definition at line 78 of file exceptn.h.

Constructor & Destructor Documentation

◆ Exception() [1/3]

Botan::Exception::Exception ( const std::string &  msg)
explicitprotected

Definition at line 11 of file exceptn.cpp.

11  : m_msg(msg)
12  {}

◆ Exception() [2/3]

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

Definition at line 18 of file exceptn.cpp.

18  :
19  m_msg(std::string(prefix) + " " + msg)
20  {}

◆ Exception() [3/3]

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

Definition at line 14 of file exceptn.cpp.

14  :
15  m_msg(msg + " failed with " + std::string(e.what()))
16  {}

Member Function Documentation

◆ error_code()

virtual int Botan::Exception::error_code ( ) const
inlinevirtualnoexcept

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::System_Error, Botan::Compression_Error, Botan::OpenSSL_Error, Botan::CommonCrypto_Error, Botan::TLS::TLS_Exception, and Botan_FFI::FFI_Error.

Definition at line 105 of file exceptn.h.

105 { return 0; }

◆ error_type()

virtual ErrorType Botan::Exception::error_type ( ) const
inlinevirtualnoexcept

◆ what()

const char* Botan::Exception::what ( ) const
inlineoverridenoexcept

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 89 of file exceptn.h.

Referenced by Botan::RSA_PrivateKey::create_decryption_op(), Botan::RSA_PublicKey::create_encryption_op(), and Botan_FFI::ffi_guard_thunk().

89 { return m_msg.c_str(); }

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