From cf36a587c71d20eaaa0f0fda82918a6d07bdee97 Mon Sep 17 00:00:00 2001
From: Markus Blatt <markus@dr-blatt.de>
Date: Mon, 27 Jan 2020 20:47:38 +0100
Subject: [PATCH] Commit throw exceptions in the setup or solve.

---
 dumux/linear/genericistlbackend.hh | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/dumux/linear/genericistlbackend.hh b/dumux/linear/genericistlbackend.hh
index 75f10fc35b..f06f0e7d53 100644
--- a/dumux/linear/genericistlbackend.hh
+++ b/dumux/linear/genericistlbackend.hh
@@ -120,12 +120,20 @@ public:
         {
             Dune::initSolverFactories<typename AMGTraits::LinearOperator>();
         }
+        std::shared_ptr<Dune::InverseOperator<Vector, Vector>> solver;
         try{
-            std::shared_ptr<Dune::InverseOperator<Vector, Vector>> solver = getSolverFromFactory(fop, params_);
-            Dune::InverseOperatorResult res;
+            solver = getSolverFromFactory(fop, params_);
+        }
+        catch(Dune::Exception& e){
+            std::cerr << "Could not create solver with factory" << std::endl;
+            std::cerr << e.what() << std::endl;
+            throw e;
+        }
+        try
+        {
             solver->apply(x,b,result_);
         }catch(Dune::Exception& e){
-            std::cerr << "Could not create solver" << std::endl;
+            std::cerr << "Exception thrown during linear solve." << std::endl;
             std::cerr << e.what() << std::endl;
             throw e;
         }
-- 
GitLab