From ed5d788001ec09298447573b71d4e19bd58314f9 Mon Sep 17 00:00:00 2001 From: florent <florent@laas.fr> Date: Wed, 29 Dec 2010 09:36:40 +0100 Subject: [PATCH] Make exception messages more explicit. * src/signal/signal-caster.cpp. --- src/signal/signal-caster.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/signal/signal-caster.cpp b/src/signal/signal-caster.cpp index 7548715..7826232 100644 --- a/src/signal/signal-caster.cpp +++ b/src/signal/signal-caster.cpp @@ -77,7 +77,10 @@ void SignalCaster::disp(const any& object, ostream& os) { functions_.find(type_name); if ( it == functions_.end() ) - throw ExceptionSignal(ExceptionSignal::BAD_CAST, "bad cast"); + throw ExceptionSignal(ExceptionSignal::BAD_CAST, + "unable to display type "+ + std::string(type_name)+ + " into ostream."); //TODO: throw "cast not registered" exception (*it).second.get<0>()(object, os); // call display function (tuple index 0) } @@ -87,7 +90,10 @@ void SignalCaster::trace(const any& object, ostream& os) { map<string, cast_functions_type>::iterator it = functions_.find(type_name); if ( it == functions_.end() ) - throw ExceptionSignal(ExceptionSignal::BAD_CAST, "bad cast");; + throw ExceptionSignal(ExceptionSignal::BAD_CAST, + "unable to trace type "+ + std::string(type_name)+ + " into ostream."); //TODO: throw "cast not registered" exception (*it).second.get<2>()(object, os); // call trace function (tuple index 2) } @@ -98,10 +104,9 @@ any SignalCaster::cast(const type_info& type, istringstream& iss) { if ( it == functions_.end() ) { - std::string msg("type " + std::string(type_name) + - " not in functions_ map."); throw ExceptionSignal(ExceptionSignal::BAD_CAST, - msg); + "unable to cast string into type "+ + std::string(type_name)+"."); } //TODO: throw "cast not registered" exception return (*it).second.get<1>()(iss); // call cast function (tuple index 1) -- GitLab