[Lemon-commits] alpar: r3239 - lemon/trunk/lemon

Lemon SVN svn at lemon.cs.elte.hu
Tue Mar 13 16:35:56 CET 2007


Author: alpar
Date: Tue Mar 13 16:35:56 2007
New Revision: 3239

Modified:
   lemon/trunk/lemon/arg_parser.h

Log:
Using LEMON_ASSERT instead of LogicError()


Modified: lemon/trunk/lemon/arg_parser.h
==============================================================================
--- lemon/trunk/lemon/arg_parser.h	(original)
+++ lemon/trunk/lemon/arg_parser.h	Tue Mar 13 16:35:56 2007
@@ -310,37 +310,41 @@
       operator bool() 
       {
 	Opts::iterator i = _parser._opts.find(_name);
-	if(i==_parser._opts.end()) throw LogicError();
-	else if(i->second.type!=ArgParser::BOOL)
-	  throw LogicError();
-	else return *(i->second.bool_p);
+	LEMON_ASSERT(i==_parser._opts.end(),
+		     std::string()+"Unkown option: '"+_name+"'");
+	LEMON_ASSERT(i->second.type!=ArgParser::BOOL,
+		     std::string()+"'"+_name+"' is a bool option");
+	return *(i->second.bool_p);
       }
       ///\e
       operator std::string()
       {
 	Opts::iterator i = _parser._opts.find(_name);
-	if(i==_parser._opts.end()) throw LogicError();
-	else if(i->second.type!=ArgParser::STRING)
-	  throw LogicError();
-	else return *(i->second.string_p);
+	LEMON_ASSERT(i==_parser._opts.end(),
+		     std::string()+"Unkown option: '"+_name+"'");
+	LEMON_ASSERT(i->second.type!=ArgParser::STRING,
+		     std::string()+"'"+_name+"' is a string option");
+	return *(i->second.string_p);
       }
       ///\e
       operator double() 
       {
 	Opts::iterator i = _parser._opts.find(_name);
-	if(i==_parser._opts.end()) throw LogicError();
-	else if(i->second.type!=ArgParser::DOUBLE) 
-	  throw LogicError();
-	else return *(i->second.double_p);
+	LEMON_ASSERT(i==_parser._opts.end(),
+		     std::string()+"Unkown option: '"+_name+"'");
+	LEMON_ASSERT(i->second.type!=ArgParser::DOUBLE,
+		     std::string()+"'"+_name+"' is a floating point option");
+	return *(i->second.double_p);
       }
       ///\e
       operator int() 
       {
 	Opts::iterator i = _parser._opts.find(_name);
-	if(i==_parser._opts.end()) throw LogicError();
-	else if(i->second.type!=ArgParser::INTEGER)
-	  throw LogicError();
-	else return *(i->second.int_p);
+	LEMON_ASSERT(i==_parser._opts.end(),
+		     std::string()+"Unkown option: '"+_name+"'");
+	LEMON_ASSERT(i->second.type!=ArgParser::INTEGER,
+		     std::string()+"'"+_name+"' is an integer option");
+	return *(i->second.int_p);
       }
 
     };



More information about the Lemon-commits mailing list