Espaces de noms
Variantes

std::uncaught_exception

De cppreference.com

<metanoindex/>

 
 
 
Erreur de manipulation
La gestion des exceptions
Original:
Exception handling
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
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)
Défaillances de gestion des exceptions
Original:
Exception handling failures
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
terminate
terminate_handler
get_terminate (C++11)
set_terminate
unexpected (obsolète)
bad_exception
unexpected_handler (obsolète)
get_unexpected (C++11) (obsolète)
set_unexpected (obsolète)
Catégories d'exception
Original:
Exception categories
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
logic_error
invalid_argument
domain_error
length_error
out_of_range
runtime_error
range_error
overflow_error
underflow_error
Les codes d'erreur
Original:
Error codes
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Les codes d'erreur
errno
Les assertions
Original:
Assertions
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
assert
system_error installation
Original:
system_error facility
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
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)
 
<tbody> </tbody>
Déclaré dans l'en-tête <exception>
bool uncaught_exception();
Détecte si le thread actuel a un objet d'exception en direct, qui est, une exception a été levée et n'est pas encore entré dans une clause catch correspondant, std::terminate ou std::unexpected. En d'autres termes, std::uncaught_exception détecte si la pile dénouement est actuellement en cours .
Original:
Detects if the current thread has a live exception object, that is, an exception has been thrown and not yet entered a matching catch clause, std::terminate or std::unexpected. In other words, std::uncaught_exception detects if stack unwinding is currently in progress.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
Parfois, il est sûr de lever une exception même si std::uncaught_exception() == true. Par exemple, si des exceptions sont capturés et ignoré dans un destructeur, ils ne peuvent pas se propager hors de lui et ne conduira pas à std::terminate .
Original:
Sometimes it's safe to throw an exception even while std::uncaught_exception() == true. For example, if exceptions are caught and ignored in a destructor, they can't propagate out of it and won't lead to std::terminate.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Paramètres

(Aucun)
Original:
(none)
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Retourne la valeur

true si la pile dénouement est actuellement en cours dans ce fil .
Original:
true if stack unwinding is currently in progress in this thread.
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

Exceptions

noexcept specification:  
<tbody> </tbody>
noexcept
   (depuis C++11)

Exemple

#include <iostream>
#include <exception>
#include <stdexcept>

struct Foo {
    ~Foo() {
        if (std::uncaught_exception()) {
            std::cout << "~Foo() called during stack unwinding\n";
        } else {
            std::cout << "~Foo() called normally\n";
        }
    }
};
int main()
{
    Foo f;
    try {
        Foo f;
        std::cout << "Exception thrown\n";
        throw std::runtime_error("test exception");
    } catch (const std::exception& e) {
        std::cout << "Exception caught: " << e.what() << '\n';
    }
}

Résultat :

Exception thrown
~Foo() called during stack unwinding
Exception caught: test exception
~Foo() called normally

Voir aussi

la fonction appelée lorsque la gestion des exceptions échoue
Original:
function called when exception handling fails
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(fonction) [edit]
type de pointeur partagé pour manipuler des objets d'exception
Original:
shared pointer type for handling exception objects
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(typedef) [edit]

Liens externes

GOTW issue 47: Uncaught Exceptions