From 958999ff5cc779e81b9a23789f84c292d79d1341 Mon Sep 17 00:00:00 2001 From: Duarte Duarte Date: Sun, 15 Feb 2015 14:56:12 +0000 Subject: Core/Server: Catch exceptions in int main() The exceptions is rethrown on debug mode. Ref Coverity CID 1010213, 1022574, 1227501, 1227502, 1227503, 1227504, 1227505, 1254536 and 1254612 (cherry picked from commit e68ca82d4d039a401d03de145111b0a738bb9dd7) Conflicts: src/server/bnetserver/Main.cpp --- src/server/authserver/Main.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/server/authserver/Main.cpp') diff --git a/src/server/authserver/Main.cpp b/src/server/authserver/Main.cpp index cd58ec2bf68..c57f8254d9c 100644 --- a/src/server/authserver/Main.cpp +++ b/src/server/authserver/Main.cpp @@ -58,7 +58,7 @@ boost::asio::deadline_timer _dbPingTimer(_ioService); uint32 _dbPingInterval; LoginDatabaseWorkerPool LoginDatabase; -int main(int argc, char** argv) +int mainImpl(int argc, char** argv) { std::string configFile = _TRINITY_REALM_CONFIG; auto vm = GetConsoleArguments(argc, argv, configFile); @@ -144,6 +144,24 @@ int main(int argc, char** argv) return 0; } +/// Launch the Trinity server +extern int main(int argc, char** argv) +{ + try + { + return mainImpl(argc, argv); + } + catch (std::exception& ex) + { + std::cerr << "Top-level exception caught:" << ex.what() << "\n"; + +#ifndef NDEBUG // rethrow exception for the debugger + throw; +#else + return 1; +#endif + } +} /// Initialize connection to the database bool StartDB() -- cgit v1.2.3