std::uncaught_exception

Da cppreference.com.
< cpp‎ | error

 
 
Utilità libreria
Tipo di supporto (basic types, RTTI, type traits)
Gestione della memoria dinamica
La gestione degli errori
Programma di utilità
Funzioni variadic
Data e ora
Funzione oggetti
initializer_list(C++11)
bitset
hash(C++11)
Gli operatori relazionali
Original:
Relational operators
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
rel_ops::operator!=
rel_ops::operator>
rel_ops::operator<=
rel_ops::operator>=
Coppie e tuple
Original:
Pairs and tuples
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
pair
tuple(C++11)
piecewise_construct_t(C++11)
piecewise_construct(C++11)
Swap, in avanti e spostare
Original:
Swap, forward and move
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.
swap
forward(C++11)
move(C++11)
move_if_noexcept(C++11)
declval(C++11)
 
La gestione degli errori
Gestione delle eccezioni
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)
Gestione delle eccezioni fallimenti
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(deprecato)
bad_exception
unexpected_handler(deprecato)
get_unexpected(C++11)(deprecato)
set_unexpected(deprecato)
Eccezione categorie
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
Codici di errore
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.
Codici di errore
errno
Asserzioni
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
impianto system_error
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)
 
Elemento definito nell'header <exception>
bool uncaught_exception();
Rileva se il thread corrente ha un oggetto vivo eccezione, che è, una è stata generata un'eccezione e non ancora entrati in una clausola corrispondente cattura, std::terminate o std::unexpected. In altre parole, std::uncaught_exception rileva se la rimozione dello stack è attualmente in corso.
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.
A volte è sicuro per generare un'eccezione anche durante std::uncaught_exception()==true. Ad esempio, se le eccezioni sono catturati e ignorati in un distruttore, non possono propagare fuori di esso e non porterà ad 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.

Indice

[modifica]Parametri

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

[modifica]Valore di ritorno

true se la rimozione dello stack è attualmente in corso in questo thread.
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.

[modifica]Eccezioni

noexcept specification:  
noexcept
  (dal C++11)

[modifica]Esempio

#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';}}

Output:

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

[modifica]Vedi anche

funzione chiamata quando la gestione delle eccezioni non riesce
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.

(funzione)[modifica]
puntatore di tipo comune per la gestione di oggetti eccezione
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)[modifica]

[modifica]Collegamenti esterni

GOTW issue 47: Uncaught Exceptions

close