command/AllCommands: catch and report std::exception

This commit is contained in:
Max Kellermann
2015-12-15 23:17:34 +01:00
parent 3092e5a8a5
commit 8f93c36466
3 changed files with 33 additions and 4 deletions

View File

@@ -25,6 +25,8 @@
#include "util/Error.hxx"
#include "Log.hxx"
#include <system_error>
#include <assert.h>
#include <string.h>
#include <errno.h>
@@ -155,3 +157,17 @@ print_error(Response &r, const Error &error)
r.Error(ToAck(error), error.GetMessage());
return CommandResult::ERROR;
}
void
PrintError(Response &r, const std::exception &e)
{
LogError(e);
try {
throw e;
} catch (const std::system_error &) {
r.Error(ACK_ERROR_SYSTEM, e.what());
} catch (...) {
r.Error(ACK_ERROR_UNKNOWN, e.what());
}
}