summaryrefslogtreecommitdiff
path: root/src/irc/irc_client.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/irc/irc_client.cpp')
-rw-r--r--src/irc/irc_client.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/irc/irc_client.cpp b/src/irc/irc_client.cpp
index 3737b91..884f214 100644
--- a/src/irc/irc_client.cpp
+++ b/src/irc/irc_client.cpp
@@ -93,7 +93,13 @@ void IrcClient::parse_in_buffer(const size_t)
this->in_buf = this->in_buf.substr(pos + 2, std::string::npos);
auto cb = irc_callbacks.find(message.command);
if (cb != irc_callbacks.end())
- (this->*(cb->second))(message);
+ {
+ try {
+ (this->*(cb->second))(message);
+ } catch (const std::exception& e) {
+ log_error("Unhandled exception: " << e.what());
+ }
+ }
else
log_info("No handler for command " << message.command);
}