Code: Select all
try { do_stuff(); }
catch(my_exception_class& e) {
if (not can_ignore_exception(e)) {
throw(e);
}
log_or_do_nothing(e);
}
Throw-Ausdruck kann durch eine Rethrow-Ausnahme ersetzt werden
und tatsächlich kann ersetzt werden – etwa so:
Code: Select all
try { do_stuff(); }
catch(my_exception_class& e) {
if (not can_ignore_exception(e)) {
std::rethrow_exception(std::current_exception());
}
log_or_do_nothing(e);
}
Hinweis: Der Code ist mindestens C++11 und verwendet möglicherweise einen späteren Standard, muss aber nicht. Wenn sich Ihre Antwort speziell auf einen neueren C++-Standard bezieht, geben Sie bitte an, welcher.
Mobile version