diff --git a/daemon/src/dbus/dbusmanager.cpp b/daemon/src/dbus/dbusmanager.cpp index 5d273fab9064575af63c625cedee100725088c09..becd522679892b2a071910dc9c30c3e3c23223f7 100644 --- a/daemon/src/dbus/dbusmanager.cpp +++ b/daemon/src/dbus/dbusmanager.cpp @@ -80,11 +80,27 @@ DBusManager::~DBusManager() void DBusManager::exec() { - dispatcher_.enter(); + try { + dispatcher_.enter(); + } catch (const DBus::Error &err) { + ERROR("%s: %s, exiting\n", err.name(), err.what()); + ::exit(EXIT_FAILURE); + } catch (const std::exception &err) { + ERROR("%s: %s, exiting\n", err.what()); + ::exit(EXIT_FAILURE); + } } void DBusManager::exit() { - dispatcher_.leave(); + try { + dispatcher_.leave(); + } catch (const DBus::Error &err) { + ERROR("%s: %s, exiting\n", err.name(), err.what()); + ::exit(EXIT_FAILURE); + } catch (const std::exception &err) { + ERROR("%s: %s, exiting\n", err.what()); + ::exit(EXIT_FAILURE); + } }