summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-03-22 14:05:49 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-03-22 15:02:46 +0800
commit78fbbe27260b63c60d3609f2859c045067c0de89 (patch)
tree5e9aa6cc0b3b7053e1f48ae8007a96bc5f794644 /src
parentc01cf075f23a436d12fb5e7a1fcf8acc0c4f93da (diff)
internal: catch exceptions at main()
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp
index 6b813e8..df50598 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -34,7 +34,7 @@ static void help() {
}
// TODO: ARGC, ARGV. the CServer ctor should take a port number
-int main(int argc, char *argv[]) {
+int main(int argc, char *argv[]) try {
std::vector<std::string> args{argv + 1, argv + argc};
if (args.empty()) {
help();
@@ -80,4 +80,10 @@ int main(int argc, char *argv[]) {
g_pChatServer.reset();
return EXIT_SUCCESS;
+} catch (const std::exception &e) {
+ log(ERR, "Fatal error: {}", e.what());
+ return EXIT_FAILURE;
+} catch (...) {
+ log(ERR, "Unknown fatal error occurred");
+ return EXIT_FAILURE;
}