From 90a149ffa36bc6517a43937558afc7bb7c01807a Mon Sep 17 00:00:00 2001
From: ehofman <ehofman>
Date: Sun, 11 Dec 2005 13:37:06 +0000
Subject: [PATCH] Vassilii Khachaturov:

* in some cases more specific sg exception types were used in place
  of the more generic one, e.g., sg_io_exception instead of sg_exception
  when the context of the error was an IO error
* in some cases, the error message was made more specific
* minor style fix for exception rethrowing --- using throw; whenever
  a re-throw is made; sometimes optimizing away the exception symbol name
  in the catch handler at all
* more specific catch handlers added in some places -- e.g.,
  an sg_io_exception caught ahead of sg_exception
---
 src/ATC/AIMgr.cxx       | 4 ++--
 src/Main/options.cxx    | 2 +-
 src/Scenery/tilemgr.cxx | 9 +++++++--
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/ATC/AIMgr.cxx b/src/ATC/AIMgr.cxx
index 2af6a0daf..3c36cde91 100644
--- a/src/ATC/AIMgr.cxx
+++ b/src/ATC/AIMgr.cxx
@@ -82,7 +82,7 @@ void FGAIMgr::init() {
 	    	                           planepath.c_str(),
 									   globals->get_props(),
 									   globals->get_sim_time_sec() );
-	} catch(sg_exception& e) {
+	} catch(sg_exception&) {
 		_loadedDefaultOK = false;
 	}
 	
@@ -102,7 +102,7 @@ void FGAIMgr::init() {
 	    	                         planepath.c_str(),
 									 globals->get_props(),
 									 globals->get_sim_time_sec() );
-	} catch(sg_exception& e) {
+	} catch(sg_exception&) {
 		_havePiperModel = false;
 	}
 
diff --git a/src/Main/options.cxx b/src/Main/options.cxx
index 0b0c8acf2..8fe9ab211 100644
--- a/src/Main/options.cxx
+++ b/src/Main/options.cxx
@@ -1063,7 +1063,7 @@ fgOptConfig( const char *arg )
 	readProperties(file, globals->get_props());
     } catch (const sg_exception &e) {
 	string message = "Error loading config file: ";
-	message += e.getFormattedMessage();
+	message += e.getFormattedMessage() + e.getOrigin();
 	SG_LOG(SG_INPUT, SG_ALERT, message);
 	exit(2);
     }
diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx
index 353be612d..ddfeb906a 100644
--- a/src/Scenery/tilemgr.cxx
+++ b/src/Scenery/tilemgr.cxx
@@ -323,8 +323,13 @@ void FGTileMgr::update_queues()
                             SGShadowVolume::occluderTypeTileObject,
                             (ssgBranch *) dm->get_tile()->get_terra_transform());
                     }
-                } catch (const sg_exception& exc) {
-                    SG_LOG( SG_ALL, SG_ALERT, exc.getMessage() );
+                } catch (const sg_io_exception& exc) {
+					string m(exc.getMessage());
+					m += " ";
+					m += exc.getLocation().asString();
+                    SG_LOG( SG_ALL, SG_ALERT, m );
+                } catch (const sg_exception& exc) { // XXX may be redundant
+                    SG_LOG( SG_ALL, SG_ALERT, exc.getMessage());
                 }
                 
                 dm->get_tile()->dec_pending_models();