Some exception specification fixes in SmtEngine/Command infrastructure
authorMorgan Deters <mdeters@cs.nyu.edu>
Wed, 20 Feb 2013 23:09:59 +0000 (18:09 -0500)
committerMorgan Deters <mdeters@cs.nyu.edu>
Wed, 20 Feb 2013 23:41:23 +0000 (18:41 -0500)
src/expr/command.cpp
src/smt/smt_engine.cpp
src/smt/smt_engine.h

index fa2a8d1f2fa4fc4661d96ad4e1e3735e77c20003..9edc77e391ef94e3fd38d7ed9912fe73a8f796af 100644 (file)
@@ -703,8 +703,12 @@ Expr SimplifyCommand::getTerm() const throw() {
 }
 
 void SimplifyCommand::invoke(SmtEngine* smtEngine) throw() {
-  d_result = smtEngine->simplify(d_term);
-  d_commandStatus = CommandSuccess::instance();
+  try {
+    d_result = smtEngine->simplify(d_term);
+    d_commandStatus = CommandSuccess::instance();
+  } catch(exception& e) {
+    d_commandStatus = new CommandFailure(e.what());
+  }
 }
 
 Expr SimplifyCommand::getResult() const throw() {
index 6b0d953ddf66380690285ff74f9aa017d27f36ca..e7c0999da0d49f570f4ceff50a06b1bcf891c1b9 100644 (file)
@@ -3039,7 +3039,7 @@ Expr SmtEngine::expandDefinitions(const Expr& ex) throw(TypeCheckingException, L
   return n.toExpr();
 }
 
-Expr SmtEngine::getValue(const Expr& ex) throw(ModalException, LogicException) {
+Expr SmtEngine::getValue(const Expr& ex) throw(ModalException, TypeCheckingException, LogicException) {
   Assert(ex.getExprManager() == d_exprManager);
   SmtScope smts(this);
 
index cdae68d96c57162fc8f3123a7043e1f1bc8b42d7..fecfba14a0cfa831410fde49fd56a0ccc22af742 100644 (file)
@@ -444,7 +444,7 @@ public:
    * by a SAT or INVALID query).  Only permitted if the SmtEngine is
    * set to operate interactively and produce-models is on.
    */
-  Expr getValue(const Expr& e) throw(ModalException, LogicException);
+  Expr getValue(const Expr& e) throw(ModalException, TypeCheckingException, LogicException);
 
   /**
    * Add a function to the set of expressions whose value is to be