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 catchl = lasterr;j = findstr(l,'Inner matrix dimensions');if j~=[]disp('Wrong dimensions for matrix multiply')elsek = findstr(l,'Undefined function or variable')if (k~=[])disp('At least one operand does not exist')endend
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 withclearA = [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.