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