diff --git a/dune/solvers/common/numproc.hh b/dune/solvers/common/numproc.hh
index a2e105f719156d41073e35364c3c8cc32123ba1e..6f0dc06e10b5fe9b765f15da0bd8dca08284e3fd 100644
--- a/dune/solvers/common/numproc.hh
+++ b/dune/solvers/common/numproc.hh
@@ -32,21 +32,18 @@ class SolverError : public Dune::Exception {};
 
     std::istream& operator>>(std::istream &lhs, NumProc::VerbosityMode &e)
     {
-        try {
-            std::string s;
-            lhs >> s;
-
-            if (s == "full" || s == "2")
-                e = NumProc::FULL;
-            if (s == "reduced" || s == "1")
-                e = NumProc::REDUCED;
-            if (s == "quiet" || s == "0")
-                e = NumProc::QUIET;
-
-            DUNE_THROW(Dune::Exception, "Failed to parse value for enum NumProc::VerbosityMode.");
-        } catch (typename Dune::Exception) {
+        std::string s;
+        lhs >> s;
+
+        if (s == "full" || s == "2")
+            e = NumProc::FULL;
+        else if (s == "reduced" || s == "1")
+            e = NumProc::REDUCED;
+        else if (s == "quiet" || s == "0")
+            e = NumProc::QUIET;
+        else
             lhs.setstate(std::ios_base::failbit);
-        }
+
         return lhs;
     }