# do not dump Octave core if exist("crash_dumps_octave_core", "builtin") crash_dumps_octave_core(0); endif exception_order function check_lasterror(expected) if (!strcmp(lasterror.message, expected)) # Take account of older versions prefixing with "error: " and adding a newline at the end if (!strcmp(regexprep(lasterror.message, 'error: (.*)\n$', '$1'), expected)) error(["Bad exception order. Expected: \"", expected, "\" Got: \"", lasterror.message, "\""]) endif endif endfunction a = A(); try a.foo() catch check_lasterror("C++ side threw an exception of type E1") end_try_catch try a.bar() catch check_lasterror("C++ side threw an exception of type E2") end_try_catch try a.foobar() catch check_lasterror("postcatch unknown (SWIG_RuntimeError)") end_try_catch try a.barfoo(1) catch check_lasterror("C++ side threw an exception of type E1") end_try_catch try a.barfoo(2) catch check_lasterror("C++ side threw an exception of type E2 *") end_try_catch