Matlab предоставляет два механизма сигнализации о том, что что-то пошло не так: функция error и механизмы обработки исключений языка MException + try/catch/throw.
Похоже, что они в значительной степени эквивалентны: функция error и функция MException имеют очень похожий синтаксис. Ошибки, возникающие с помощью error(), могут быть обнаружены с помощью catch, в то время как инструменты, связанные с ошибкой (например, dbstop if error и lasterr), похоже, работают и с исключениями.
Есть ли причина предпочесть error('Foo:Bar', 'Some human-readable message about bar') на throw(MException('Foo:Bar', 'Some human-readable message')) или наоборот?
(Они оба встроены, поэтому вы не можете просто открыть (например,) error.m, чтобы убедиться, что это тривиальная оболочка вокруг другого!)