namespace simgrid {
namespace xbt {
-ImpossibleError::~ImpossibleError() = default;
-UnimplementedError::~UnimplementedError() = default;
+ImpossibleError::~ImpossibleError() = default;
+InitializationError::~InitializationError() = default;
+UnimplementedError::~UnimplementedError() = default;
void log_exception(e_xbt_log_priority_t prio, const char* context, std::exception const& exception)
{
return;
try {
with_nested->rethrow_nested();
- }
- catch (std::exception& nested_exception) {
+ } catch (const std::exception& nested_exception) {
log_exception(prio, "Caused by", nested_exception);
}
// We could catch nested_exception or WithContextException but we don't bother:
}
// Parse error are handled differently, as the call stack does not matter, only the file location
- catch (simgrid::ParseError& e) {
+ catch (const simgrid::ParseError& e) {
XBT_ERROR("%s", e.what());
XBT_ERROR("Exiting now.");
std::abort();
}
// We manage C++ exception ourselves
- catch (std::exception& e) {
+ catch (const std::exception& e) {
log_exception(xbt_log_priority_critical, "Uncaught exception", e);
show_backtrace(bt);
std::abort();