diff --git a/libinterp/parse-tree/pt-eval.cc b/libinterp/parse-tree/pt-eval.cc --- a/libinterp/parse-tree/pt-eval.cc +++ b/libinterp/parse-tree/pt-eval.cc @@ -3994,9 +3994,17 @@ Example: if (expr_id) { + octave_value_list tmp + = m_interpreter.feval ("MException", ovl (err_map, true), 1); + + if (tmp.length () == 0) + error ("internal error creating MException object"); + + octave_value err_obj = tmp(0); + octave_lvalue ult = expr_id->lvalue (*this); - ult.assign (octave_value::op_asn_eq, err_map); + ult.assign (octave_value::op_asn_eq, err_obj); } // perform actual "catch" block