std::uncaught_exception
De cppreference.com
[] |
This page has been machine-translated from the English version of the wiki using Google Translate.
The translation may contain errors and awkward wording. Hover over text to see the original version. You can help to fix errors and improve the translation. For instructions click here. |
<metanoindex/>
<tbody> </tbody>| Dclar dans l'en-tte <exception>
|
||
bool uncaught_exception(); |
||
Dtecte si le thread actuel a un objet d'exception en direct, qui est, une exception a t leve et n'est pas encore entr dans une clause catch correspondant, std::terminate ou std::unexpected. En d'autres termes, std::uncaught_exception dtecte si la pile dnouement 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.
You can help to correct and verify the translation. Click here for instructions.
Parfois, il est sr de lever une exception mme si
std::uncaught_exception() == true. Par exemple, si des exceptions sont capturs 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.
You can help to correct and verify the translation. Click here for instructions.
Paramtres
(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.
You can help to correct and verify the translation. Click here for instructions.
Retourne la valeur
true si la pile dnouement 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.
You can help to correct and verify the translation. Click here for instructions.
Exceptions
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';
}
}
Rsultat :
Exception thrown
~Foo() called during stack unwinding
Exception caught: test exception
~Foo() called normally
Voir aussi
la fonction appele 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) | |
(C++11) |
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) |