lasterr
가장 최근의 오류 메시지
lasterr
은 권장되지 않습니다. MException
을 대신 사용하십시오. 자세한 내용은 호환성 관련 고려 사항 항목을 참조하십시오.
구문
msgstr = lasterr
[msgstr,errID] = lasterr
lasterr('new_msgstr')
lasterr('new_msgstr','new_errID')
[msgstr,errID] = lasterr('new_msgstr','new_errID')
설명
msgstr = lasterr
은 MATLAB®에서 발생한 가장 최근의 오류 메시지를 반환합니다.
[msgstr,errID] = lasterr
은 가장 최근의 오류를 msgstr
로 반환하고 해당 ID를 errID
로 반환합니다. 오류가 ID와 함께 정의되지 않은 경우 lasterr
은 errID
에 대해 빈 문자형 벡터를 반환합니다. 오류 ID에 대한 자세한 내용은 MException
을 참조하십시오.
lasterr('new_msgstr')
은 가장 최근의 오류 메시지를 새 문자형 벡터 new_msgstr
로 설정하여 이후에 lasterr
을 호출할 때 새 오류 메시지가 반환되도록 합니다. 또한 lasterr('')
을 사용하여 가장 최근의 오류를 빈 문자형 벡터로 설정할 수도 있습니다.
lasterr('new_msgstr','new_errID')
는 가장 최근의 오류 메시지와 오류 ID를 각각 new_msgstr
과 new_errID
로 설정합니다. 이후에 lasterr
을 호출하면 새 오류 메시지와 오류 ID가 반환됩니다.
[msgstr,errID] = lasterr('new_msgstr','new_errID')
는 가장 최근의 오류 메시지와 오류 ID를 반환하고, 또한 이 값들을 변경하여 이후에 lasterr
을 호출할 때 각각 new_msgstr
과 new_errID
에 지정된 메시지와 ID가 반환되도록 합니다.
예제
예제 1
여기에서는 lasterr
문자형 벡터를 검토하고 가장 최근에 발생한 오류에 따라 자체 메시지를 표시하는 함수를 보여줍니다. 이 예제에서는 행렬을 곱하여 발생할 수 있는 오류 두 가지를 다룹니다.
function matrix_multiply(A,B) try A * B catch errmsg = lasterr; if(strfind(errmsg, 'Inner matrix dimensions')) disp('** Wrong dimensions for matrix multiply') else if(strfind(errmsg, 'not defined for variables of class')) disp('** Both arguments must be double matrices') end end end
이 함수를 행렬 곱셈에 호환되지 않는 행렬(예: A
의 열 차원이 B
의 행 차원과 같지 않음)과 함께 호출하면 MATLAB은 오류를 포착하고 lasterr
을 사용하여 그 원인을 확인합니다.
A = [1 2 3; 6 7 2; 0 -1 5]; B = [9 5 6; 0 4 9]; matrix_multiply(A,B) ** Wrong dimensions for matrix multiply
예제 2
error
를 사용하여 오류 ID와 오류 메시지를 지정합니다.
error('MyToolbox:angleTooLarge',... 'The angle specified must be less than 90 degrees.');
오류 처리 코드에서 lasterr
을 사용하여 실패한 연산의 오류 ID와 오류 메시지를 확인합니다.
[errmsg,errID] = lasterr errmsg = The angle specified must be less than 90 degrees. errID = MyToolbox:angleTooLarge