str = lasterr
lasterr('')
str = lasterr
returns the last error message generated by MATLAB.
lasterr('')
resets the lasterr
function so it returns an empty matrix until the next error occurs.
lasterr
is useful in conjunction with the two argument form of eval
:
eval('str1','str2')
where str2
examines the lasterr
string to determine the cause of the error and take appropriate action.
lasterr
string and displays its own message based on the error that last occurred. This example deals with two cases, each of which are errors that can result from a matrix multiply.
The two argument form of thefunction catch
l = lasterr;
j = findstr(l,'Inner matrix dimensions');
if j~=[]
disp('Wrong dimensions for matrix multiply')
else
k = findstr(l,'Undefined function or variable')
if (k~=[])
disp('At least one operand does not exist')
end
end
eval
function,
eval('str1','str2')
evaluates the string str1
and returns if no error occurs. If an error does occur, eval
executes str2
. Try using this form of eval
with the catch
function shown above:
MATLAB responds withclear
A = [1 2 3; 6 7 2; 0 -1 5];
B = [9 5 6; 0 4 9];
eval('A*B','catch')
Wrong dimensions for matrix multiply
lcm(8,40)
ans =
40
error
,eval
(c) Copyright 1994 by The MathWorks, Inc.