Main Content

경고와 오류 발생시키기

경고 발생시키기

프로그램 실행 시 감지된 예기치 않은 조건을 표시하는 목적으로 경고를 발생시킬 수 있습니다. warning 함수는 명령줄에 경고 메시지를 출력합니다. 경고는 다음 두 가지 유의미한 측면에서 오류와는 달리 구분됩니다.

  • 경고는 프로그램 실행을 중지하지 않습니다.

  • 도움이 되지 않는 MATLAB® 경고를 표시하지 않을 수 있습니다.

실행 중 경고 메시지를 생성하려면 코드에 warning 함수를 사용하십시오. 다음과 같이 warning 함수에 대한 입력 인수로 메시지를 지정하십시오.

warning('Input must be text')

예를 들어, 소프트웨어 버전을 확인하는 경고를 코드에 삽입할 수 있습니다.

function warningExample1
  if ~strncmp(version, '7', 1)
    warning('You are using a version other than v7')
  end

오류 발생시키기

프로그램 내의 치명적인 문제를 표시하는 목적으로 오류를 발생시킬 수 있습니다. error 함수를 사용하여 명령줄에 오류 메시지를 출력합니다. 메시지를 표시한 후, MATLAB은 현재 프로그램의 실행을 중지합니다.

예를 들어, n개 요소에서 나올 수 있는 k개 요소 조합의 개수를 반환하는 함수를 생성한다고 가정하겠습니다. 이러한 함수는 k > n인 경우에는 성립할 수 없습니다. 예로, 4개의 요소 중에서 8개의 요소를 선택할 수 없기 때문입니다. combinations를 사용하는 사람이 문제를 알 수 있도록 이 사실을 함수에 포함시켜야 합니다.

function com = combinations(n,k)
    if k > n
        error('Cannot calculate with given values')
    end
    com = factorial(n)/(factorial(k)*factorial(n-k));
end

combinations 함수가 유효하지 않은 입력값을 받을 경우 MATLAB은 오류 메시지를 발생시킨 후에 바로 실행을 중지합니다.

combinations(4,8)
Error using combinations (line 3)
Cannot calculate with given values

경고와 오류에 런타임 파라미터 추가하기

경고 또는 오류 메시지를 보다 구체적으로 표시하려면 실행할 때 메시지의 구성요소를 삽입하십시오. warning 함수는 sprintf 함수에서 사용하는 것과 동일한 변환 문자를 사용합니다. 변환 문자는 코드가 실행될 때까지 알 수 없는 부분문자열이나 값에 대한 자리 표시자 역할을 합니다.

예를 들어, 다음 경고는 %s%d를 사용하여 변수 arraynamearraydims의 값을 삽입할 위치를 표시합니다.

warning('Array %s has %d dimensions.',arrayname,arraydims)
arrayname = 'A'arraydims = 3을 지정하여 이 명령을 실행하면 MATLAB은 다음을 반환합니다.
Warning: Array A has 3 dimensions.

경고와 오류에 런타임 파라미터를 추가하면 프로그램 내의 문제를 명확히 나타낼 수 있습니다. 오류 발생시키기에 나와 있는 함수 combinations를 예로 들어 보겠습니다. 다음과 같이 런타임 파라미터를 사용하여 훨씬 더 많은 정보를 제공하는 오류를 발생시킬 수 있습니다.

function com = combinations(n,k)
    if k > n
        error('Cannot choose %i from %i elements',k,n)
    end
    com = factorial(n)/(factorial(k)*factorial(n-k));
end
이 함수가 유효하지 않은 인수를 받을 경우 MATLAB은 오류 메시지를 발생시키고 프로그램을 중지합니다.
combinations(6,9)
Error using combinations (line 3)
Cannot choose 9 from 6 elements

경고와 오류에 식별자 추가하기

식별자를 사용하면 경고나 오류를 고유하게 참조할 수 있습니다.

식별자를 사용하여 경고를 활성화하거나 비활성화할 수 있습니다. 다음과 같이 warning 함수에 식별 텍스트 인수를 사용하여 메시지에 고유한 태그를 추가합니다.

warning(identifier_text,message_text)

예를 들어 앞에 나온, 실행 중인 소프트웨어 버전에 대한 MATLAB 경고에 식별자 태그를 추가할 수 있습니다.

minver = '7';
if ~strncmp(version,minver,1)
  warning('MYTEST:VERCHK','Running a version other than v%s',minver)
end

오류 메시지에 ID를 추가하면 부정 테스트(Negative Test)를 수행할 수 있습니다. 그러나, 더 많은 정보를 추가하거나 오류로부터 정보를 복구하려면 MException 객체를 사용해야 하는 경우가 종종 있습니다.

참고 항목

| | |

관련 항목