Main Content

error

오류 발생 및 메시지 표시

설명

예제

error(msg)는 오류를 발생시키고 오류 메시지를 표시합니다.

error(msg,A)는 MATLAB® sprintf 함수에 사용되는 것과 같이 형식 변환 문자를 포함하는 오류 메시지를 표시합니다. msg의 각 변환 문자는 값 A 중 하나로 변환됩니다.

error(errID,___)는 예외에 대한 오류 ID를 포함합니다. 이 ID를 통해 오류를 구별하고 MATLAB에서 오류가 발생할 때 수행할 동작을 제어할 수 있습니다. 위에 열거된 구문의 입력 인수 중 하나를 포함할 수 있습니다.

예제

error(errorStruct)는 스칼라 구조체의 필드를 사용하여 오류를 발생시킵니다.

예제

error(correction,___)은 예외에 대한 제안 수정 사항을 제공합니다. 위에 열거된 구문의 입력 인수 중 하나를 포함할 수 있습니다.

예제

모두 축소

msg = 'Error occurred.';
error(msg)
Error occurred.

줄 바꿈을 사용하여 서식이 설정된 오류 메시지를 발생시킵니다. MATLAB에서 오류 메시지에 포함된 특수 문자(예: \n)를 변환하려면 error에 둘 이상의 입력 인수를 지정해야 합니다. 오류 메시지에 변수 n의 클래스에 대한 정보를 포함합니다.

n = 7;
if ~ischar(n)
   error('Error. \nInput must be a char, not a %s.',class(n))
end
Error.
Input must be a char, not a double.

error에 하나의 입력 인수만 사용하는 경우 MATLAB은 \n을 줄 바꿈으로 변환하지 않습니다.

if ~ischar(n)
   error('Error. \nInput must be a char.')
end
Error. \nInput must be a char.

ID와 함께 오류를 발생시킵니다.

if ~ischar(n)
   error('MyComponent:incorrectType',...
       'Error. \nInput must be a char, not a %s.',class(n))
end
Error.
Input must be a char, not a double.

MException.last를 사용하여 마지막 uncaught exception을 확인합니다.

exception = MException.last
exception = 

  MException with properties:

    identifier: 'MyComponent:incorrectType'
       message: 'Error. 
Input must be a char, not a double.'
         cause: {0x1 cell}
         stack: [0x1 struct]

메시지 필드와 ID 필드가 있는 구조체를 생성합니다. 예제를 단순하게 유지하도록 스택 필드를 사용하지 마십시오.

errorStruct.message = 'Data file not found.';
errorStruct.identifier = 'MyFunction:fileNotFound';
errorStruct = 

       message: 'Data file not found.'
    identifier: 'MyFunction:fileNotFound'

오류를 발생시킵니다.

error(errorStruct)
Data file not found.

하나의 입력 인수를 필요로 하는 함수 hello를 만듭니다. 제안된 입력 인수 "world"를 오류 메시지에 추가합니다.

function hello(audience)
if nargin < 1
    aac = matlab.lang.correction.AppendArgumentsCorrection('"world"');
    error(aac, 'MATLAB:notEnoughInputs', 'Not enough input arguments.')   
end
fprintf("Hello, %s!\n", audience)
end

이 함수를 인수 없이 호출합니다.

hello
Error using hello
Not enough input arguments.

Did you mean:
>> hello("world")

입력 인수

모두 축소

오류에 대한 정보로, 형식 사양이 포함된 텍스트 스칼라로 지정됩니다. 이 메시지는 오류 메시지로 표시됩니다. 메시지의 형식을 지정하려면 \t, \n 등의 이스케이프 시퀀스를 사용하십시오. sprintf 함수가 지원하는 형식 지정자(예: %s 또는 %d)를 사용할 수도 있습니다. A1,...,An 입력 인수를 통해 변환 지정자의 값을 지정합니다. 자세한 내용은 텍스트 형식 지정하기 항목을 참조하십시오.

참고

MATLAB에서 오류 메시지에 포함된 특수 문자(예: \t, \n, %s, %d)를 변환하도록 하려면 error에 두 개 이상의 입력 인수를 지정해야 합니다.

예: 'File not found.'

오류 ID로, 구성요소 필드와 니모닉 필드가 포함된 텍스트 스칼라로 지정됩니다. 오류 ID를 사용하여 프로그램 내에서 오류의 원인을 보다 효율적으로 식별하거나 선정한 오류 모음을 제어할 수 있습니다.

오류 ID는 하나 이상의 구성요소 필드와 하나의 니모닉 필드를 포함합니다. 필드는 콜론으로 구분되어야 합니다. 예를 들어, 구성요소 필드 component와 니모닉 필드 mnemonic을 갖는 오류 ID는 'component:mnemonic'으로 지정됩니다. 구성요소 필드와 니모닉 필드는 각각 영문자로 시작해야 합니다. 나머지 문자는 영숫자(A–Z, a–z, 0–9)나 밑줄일 수 있습니다. errID는 공백 문자를 포함할 수 없습니다. 자세한 내용은 MException을 참조하십시오.

예: 'MATLAB:singularMatrix'

예: 'MATLAB:narginchk:notEnoughInputs'

msg의 변환 지정자를 대체하는 값으로, 문자형 벡터, string형 스칼라 또는 숫자형 스칼라로 지정됩니다.

오류 보고 정보로, 스칼라 구조체로 지정됩니다. 구조체는 다음 필드 중 하나 이상을 포함해야 합니다.

message

오류 메시지. 자세한 내용은 msg를 참조하십시오.

identifier

오류 ID입니다. 자세한 내용은 errID를 참조하십시오.

stack

오류에 대한 스택 필드. errorStructstack 필드가 포함된 경우, error가 이를 사용하여 오류에 대한 스택 필드를 설정합니다. stack을 지정하는 경우 절대 파일 이름과 스택 프레임에 함수를 중첩하는 전체 함수 시퀀스를 사용하십시오. 이 문자형 벡터는 dbstack('-completenames')에서 반환하는 것과 동일합니다.

  • 오류가 발생하면 MATLAB이 발생한 오류에 대한 정보를 캡처하고 이를 MException 클래스의 객체인 데이터 구조에 저장합니다. try/catch를 사용하여 예외 객체의 정보에 액세스할 수 있습니다. 또는 예외로 인해 프로그램이 종료되고 명령 프롬프트 제어로 돌아가는 경우 MException.last를 사용할 수 있습니다.

  • try 블록 내에서 오류가 발생하는 경우, MATLAB은 프로그램의 실행을 중단하지 않습니다. 이 경우 MATLAB은 catch 블록으로 제어를 전달합니다.

  • error에 대한 모든 입력값이 비어 있는 경우 MATLAB은 오류를 발생시키지 않습니다.

확장 기능

버전 내역

R2006a 이전에 개발됨