From 5f8e48c63baf12930430d5d8fc07495021599e61 Mon Sep 17 00:00:00 2001
From: Loic Blot <loic.blot@unix-experience.fr>
Date: Mon, 16 Mar 2015 20:25:35 +0100
Subject: [PATCH] Server::step throw is never catched. Replace it with an
 errorstream + assert This throw can be trigger by LuaError exception or
 ConnectionBindFailed exception in the following functions: *
 EmergeThread::Thread() * ScriptApiEnv::environment_Step() *
 ScriptApiEnv::player_event() * ServerThread::Thread()

---
 src/server.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/server.cpp b/src/server.cpp
index 35405851f..4e955e40a 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -479,10 +479,13 @@ void Server::step(float dtime)
 		JMutexAutoLock lock(m_step_dtime_mutex);
 		m_step_dtime += dtime;
 	}
-	// Throw if fatal error occurred in thread
+	// Assert if fatal error occurred in thread
 	std::string async_err = m_async_fatal_error.get();
-	if(async_err != ""){
-		throw ServerError(async_err);
+	if(async_err != "") {
+		errorstream << "UNRECOVERABLE error occurred. Stopping server. "
+				<< "Please fix the following error:" << std::endl
+				<< async_err << std::endl;
+		assert(false);
 	}
 }
 
-- 
GitLab