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();