Matlab posiada dwa mechanizmy sygnalizacji, że coś poszło nie tak: Funkcja error
i mechanizmy obsługi wyjątków w języku MException
+ try
/catch
/throw
.wyjątkami vs. Błędy w Matlab
Wygląda na to, że są w dużej mierze równoważne: funkcja error
i funkcja MException
mają bardzo podobną składnię. Błędy podniesione przez error()
mogą zostać przechwycone przez catch
, podczas gdy narzędzia związane z błędami (takie jak dbstop if error
i lasterr
) również działają z wyjątkami.
Czy jest jakiś powód, aby preferować error('Foo:Bar', 'Some human-readable message about bar')
do throw(MException('Foo:Bar', 'Some human-readable message'))
lub odwrotnie?
(Są zarówno Zabudowy, więc można nie tylko otwarte (np) error.m aby sprawdzić, czy ktoś jest trywialne otoki wokół drugiego!)
To ma sens - nawet adres URL dokumentacji klasy MException mówi "capture-information-about-errors.html". Nie przypuszczam, że widziałeś gdziekolwiek link sugerujący, że są one faktycznie ekwiwalentne? –