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; }