Mercurial > octave
diff libinterp/dldfcn/__eigs__.cc @ 20743:b6408331bfa2
eliminate more uses of error_state
* graphics.cc, input.cc, max.cc, rand.cc, __eigs__.cc, ov-class.cc,
ov-classdef.cc, ov.cc, octave.cc: Eliminate more uses of error_state.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 23 Nov 2015 23:23:57 -0500 |
parents | 85e5efae848a |
children | 200ae1d650b7 |
line wrap: on
line diff
--- a/libinterp/dldfcn/__eigs__.cc Mon Nov 23 21:00:14 2015 -0500 +++ b/libinterp/dldfcn/__eigs__.cc Mon Nov 23 23:23:57 2015 -0500 @@ -56,13 +56,15 @@ if (eigs_fcn) { - octave_value_list tmp = eigs_fcn->do_multi_index_op (1, args); + octave_value_list tmp; - if (error_state) + try { - eigs_error = 1; + tmp = eigs_fcn->do_multi_index_op (1, args); + } + catch (const octave_execution_exception&) + { gripe_user_supplied_eval ("eigs"); - return retval; } if (tmp.length () && tmp(0).is_defined ()) @@ -73,13 +75,7 @@ warned_imaginary = true; } - retval = ColumnVector (tmp(0).vector_value ()); - - if (error_state) - { - eigs_error = 1; - gripe_user_supplied_eval ("eigs"); - } + retval = tmp(0).xvector_value ("eigs: evaluation of user-supplied function failed"); } else { @@ -100,24 +96,20 @@ if (eigs_fcn) { - octave_value_list tmp = eigs_fcn->do_multi_index_op (1, args); + octave_value_list tmp; - if (error_state) + try { - eigs_error = 1; + tmp = eigs_fcn->do_multi_index_op (1, args); + } + catch (const octave_execution_exception&) + { gripe_user_supplied_eval ("eigs"); - return retval; } if (tmp.length () && tmp(0).is_defined ()) { - retval = ComplexColumnVector (tmp(0).complex_vector_value ()); - - if (error_state) - { - eigs_error = 1; - gripe_user_supplied_eval ("eigs"); - } + retval = tmp(0).complex_vector_value ("eigs: evaluation of user-supplied function failed"); } else {