Espaces de noms
Variantes
Actions

std::uncaught_exception

De cppreference.com
< cpp‎ | error

 
 
 
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)
 
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.

Sommaire

[modifier]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.

[modifier]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.

[modifier]Exceptions

noexcept specification:  
noexcept
   (depuis C++11)

[modifier]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";throwstd::runtime_error("test exception");}catch(conststd::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

[modifier]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]

[modifier]Liens externes

GOTW issue 47: Uncaught Exceptions

close