diff --git a/dumux/linear/genericistlbackend.hh b/dumux/linear/genericistlbackend.hh
index 75f10fc35b946a9abd86bc5b6bcb8861193ae97c..f06f0e7d53cf1306ef022500d0dac93e3e6c244b 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;
         }