Заголовок стандартной библиотеки <exception>
Этот заголовок входит в библиотеку обработки ошибок.
Типы |
|
| базовый класс для исключений, генерируемых компонентами стандартной библиотеки (класс) |
|
|
(C++11) | тип-миксин для захвата и хранения текущих исключений (класс) |
исключение, генерируемое, когда std::current_exception не удается скопировать объект исключения (класс) |
|
|
(устарело в C++11)(удалено в C++17) | тип функции, вызываемой std::unexpected (псевдоним типа) |
тип функции, вызываемой std::terminate (псевдоним типа) |
|
|
(C++11) | тип разделяемого указателя для работы с объектами исключений (псевдоним типа) |
Функции |
|
|
(устарело в C++11)(удалено в C++17) | функция, вызываемая при нарушении динамической спецификации исключений (функция) |
|
(удалено в C++20*)(C++17) | проверяет, выполняется ли в данный момент обработка исключения (функция) |
|
(C++11) | создает std::exception_ptr из объекта исключения (шаблон функции) |
|
(C++11) | захватывает текущее исключение в std::exception_ptr (функция) |
|
(C++11) | повторно генерирует исключение из std::exception_ptr (функция) |
|
(C++11) | генерирует переданный аргумент, смешивая его с std::nested_exception (шаблон функции) |
|
(C++11) | повторно генерирует исключение из std::nested_exception (шаблон функции) |
| функция, вызываемая при сбое обработки исключения (функция) |
|
|
(C++11) | получает текущий terminate_handler (функция) |
изменяет функцию, вызываемую std::terminate (функция) |
|
|
(устарело в C++11)(удалено в C++17) | получает текущий unexpected_handler (функция) |
|
(устарело в C++11)(удалено в C++17) | изменяет функцию, вызываемую std::unexpected (функция) |
Обзор
namespace std {
class exception;
class bad_exception;
class nested_exception;
using terminate_handler = void (*)();
terminate_handler get_terminate() noexcept;
terminate_handler set_terminate(terminate_handler f) noexcept;
[[noreturn]] void terminate() noexcept;
int uncaught_exceptions() noexcept;
using exception_ptr = /* unspecified */;
exception_ptr current_exception() noexcept;
[[noreturn]] void rethrow_exception(exception_ptr p);
template<class E> exception_ptr make_exception_ptr(E e) noexcept;
template<class T> [[noreturn]] void throw_with_nested(T&& t);
template<class E> void rethrow_if_nested(const E& e);
}
Класс std::exception
namespace std {
class exception {
public:
exception() noexcept;
exception(const exception&) noexcept;
exception& operator=(const exception&) noexcept;
virtual ~exception();
virtual const char* what() const noexcept;
};
}
Класс std::bad_exception
namespace std {
class bad_exception : public exception {
public:
// see [exception] for the specification of the special member functions
const char* what() const noexcept override;
};
}
Класс std::nested_exception
namespace std {
class nested_exception {
public:
nested_exception() noexcept;
nested_exception(const nested_exception&) noexcept = default;
nested_exception& operator=(const nested_exception&) noexcept = default;
virtual ~nested_exception() = default;
// access functions
[[noreturn]] void rethrow_nested() const;
exception_ptr nested_ptr() const noexcept;
};
template<class T> [[noreturn]] void throw_with_nested(T&& t);
template<class E> void rethrow_if_nested(const E& e);
}
См. также
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/header/exception