Main Content

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와 함께 정의되지 않은 경우 lasterrerrID에 대해 빈 문자형 벡터를 반환합니다. 오류 ID에 대한 자세한 내용은 MException을 참조하십시오.

lasterr('new_msgstr')은 가장 최근의 오류 메시지를 새 문자형 벡터 new_msgstr로 설정하여 이후에 lasterr을 호출할 때 새 오류 메시지가 반환되도록 합니다. 또한 lasterr('')을 사용하여 가장 최근의 오류를 빈 문자형 벡터로 설정할 수도 있습니다.

lasterr('new_msgstr','new_errID')는 가장 최근의 오류 메시지와 오류 ID를 각각 new_msgstrnew_errID로 설정합니다. 이후에 lasterr을 호출하면 새 오류 메시지와 오류 ID가 반환됩니다.

[msgstr,errID] = lasterr('new_msgstr','new_errID')는 가장 최근의 오류 메시지와 오류 ID를 반환하고, 또한 이 값들을 변경하여 이후에 lasterr을 호출할 때 각각 new_msgstrnew_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

확장 기능

스레드 기반 환경
MATLAB®의 backgroundPool을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool을 사용해 코드 실행 속도를 높일 수 있습니다.

버전 내역

R2006a 이전에 개발됨

모두 축소

R2007b: lasterr은 권장되지 않음

MathWorks®는 MATLAB 오류 처리를 점차적으로 MException 클래스를 기반으로 하는 객체 지향 방식으로 전환하고 있습니다. lasterr은 계속 지원될 것으로 예상되지만 MException의 정적 MException.last 메서드를 사용하는 것이 권장됩니다.

경고

lasterrMException.last는 항상 동일한 결과를 반환하지는 않습니다. 예를 들어, MException.last는 uncaught error에서만 오류 상태를 업데이트하는 반면, lasterr은 오류의 포착 여부에 관계없이 모든 오류에 대해 오류 상태를 업데이트할 수 있습니다.

참고 항목

| | | |