From ea69a49a7ba040a2e197ae2bbe5ac31f6738a3ba Mon Sep 17 00:00:00 2001
From: Perttu Ahola <celeron55@gmail.com>
Date: Sat, 23 Apr 2011 18:53:39 +0300
Subject: [PATCH] tuned error reporting a bit

---
 src/main.cpp | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/src/main.cpp b/src/main.cpp
index dd8d5d7d4..5349310d6 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1248,18 +1248,18 @@ int main(int argc, char *argv[])
 		GUI stuff
 	*/
 
+	/*
+		If an error occurs, this is set to something and the
+		menu-game loop is restarted. It is then displayed before
+		the menu.
+	*/
+	std::wstring error_message = L"";
+
 	/*
 		Menu-game loop
 	*/
 	while(device->run() && kill == false)
 	{
-		/*
-			If an error occurs, this is set to something and the
-			menu-game loop is restarted. It is then displayed before
-			the menu.
-		*/
-		std::wstring error_message = L"";
-
 		// This is used for catching disconnects
 		try
 		{
@@ -1404,6 +1404,21 @@ int main(int argc, char *argv[])
 			dstream<<DTIME<<"Connection error (timed out?)"<<std::endl;
 			error_message = L"Connection error (timed out?)";
 		}
+		catch(SocketException &e)
+		{
+			dstream<<DTIME<<"Socket error (port already in use?)"<<std::endl;
+			error_message = L"Socket error (port already in use?)";
+		}
+#ifdef NDEBUG
+		catch(std::exception &e)
+		{
+			narrow_message = "Some exception, what()=\"";
+			narrow_message += e.what();
+			narrow_message += "\"";
+			dstream<<DTIME<<narrow_message<<std::endl;
+			error_message = narrow_to_wide(narrow_message);
+		}
+#endif
 
 	} // Menu-game loop
 	
-- 
GitLab