Пространства имён
Варианты
Действия

std::current_exception

Материал из cppreference.com
< cpp‎ | error

 
 
 
Обработка ошибок
Обработка исключений
Оригинал:
Exception handling
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
exception
uncaught_exception
exception_ptr(C++11)
make_exception_ptr(C++11)
current_exception(C++11)
rethrow_exception(C++11)
nested_exception(C++11)
throw_with_nested(C++11)
rethrow_if_nested(C++11)
Неудачи обработки исключений
Оригинал:
Exception handling failures
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
terminate
terminate_handler
get_terminate(C++11)
set_terminate
unexpected(устарело)
bad_exception
unexpected_handler(устарело)
get_unexpected(C++11)(устарело)
set_unexpected(устарело)
Исключение категорий
Оригинал:
Exception categories
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
logic_error
invalid_argument
domain_error
length_error
out_of_range
runtime_error
range_error
overflow_error
underflow_error
Коды ошибок
Оригинал:
Error codes
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Коды ошибок
errno
Утверждений
Оригинал:
Assertions
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
assert
system_error центр
Оригинал:
system_error facility
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
error_category(C++11)
generic_category(C++11)
system_category(C++11)
error_condition(C++11)
errc(C++11)
error_code(C++11)
system_error(C++11)
 
Определено в заголовочном файле <exception>
std::exception_ptr current_exception()
(начиная с C++11)
При вызове во время обработки исключений (как правило, в catch пункта), захватывает текущий объект исключения и создает std::exception_ptr, которая содержит ссылку на этот объект исключения, или копия этого объекта исключения (это определяется реализацией, если копия сделал)
Оригинал:
If called during exception handling (typically, in a catch clause), captures the current exception object and creates an std::exception_ptr that holds a reference to that exception object, or to a copy of that exception object (it is implementation-defined if a copy is made)
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если реализация этой функции требует вызова new, и вызов не удается, возвращается указатель будет содержать ссылку на экземпляр std::bad_alloc
Оригинал:
If the implementation of this function requires a call to new and the call fails, the returned pointer will hold a reference to an instance of std::bad_alloc
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если реализация этой функции требует, чтобы скопировать захваченный объект исключения, и его копия конструктор генерирует исключение, возвращается указатель будет содержать ссылку на исключение. Если конструктор копирования брошенный объект исключения также бросает, возвращается указатель может содержать ссылку на экземпляр std::bad_exception разорвать бесконечный цикл.
Оригинал:
If the implementation of this function requires to copy the captured exception object and its copy constructor throws an exception, the returned pointer will hold a reference to the exception thrown. If the copy constructor of the thrown exception object also throws, the returned pointer may hold a reference to an instance of std::bad_exception to break the endless loop.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.
Если функция вызывается, когда исключение не обрабатывается, пустой std::exception_ptr возвращается.
Оригинал:
If the function is called when no exception is being handled, an empty std::exception_ptr is returned.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

Содержание

[править] Параметры

(Нет)

[править] Возвращаемое значение

Экземпляр std::exception_ptr содержащая ссылку на объект исключения, или копию объекта исключения, или экземпляр std::bad_alloc или экземпляр std::bad_exception.
Оригинал:
An instance of std::exception_ptr holding a reference to the exception object, or a copy of the exception object, or to an instance of std::bad_alloc or to an instance of std::bad_exception.
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

[править] Исключения

noexcept-спецификация:  
noexcept
  (начиная с C++11)

[править] Пример

[edit]
#include <iostream>
#include <string>
#include <exception>
#include <stdexcept>
 
void handle_eptr(std::exception_ptr eptr) // passing by value is ok
{
    try {
        if (eptr != std::exception_ptr()) {
            std::rethrow_exception(eptr);
        }
    } catch(const std::exception& e) {
        std::cout << "Caught exception \"" << e.what() << "\"\n";
    }
}
 
int main()
{
    std::exception_ptr eptr;
    try {
        std::string().at(1); // this generates an std::out_of_range
    } catch(...) {
        eptr = std::current_exception(); // capture
    }
    handle_eptr(eptr);
} // destructor for std::out_of_range called here, when the eptr is destructed

Вывод:

Caught exception "basic_string::at"

[править] См. также

общий тип указателя для обработки исключения объектов
Оригинал:
shared pointer type for handling exception objects
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(определение типа) [edit]
бросает исключение из std::exception_ptr
Оригинал:
throws the exception from an std::exception_ptr
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(функция) [edit]
создает std::exception_ptr от объекта исключения
Оригинал:
creates an std::exception_ptr from an exception object
Текст был переведён автоматически через Google Translate.
Вы можете проверить и исправить перевод. Для инструкций кликните сюда.

(шаблон функции) [edit]