Main Content

이 페이지의 최신 내용은 아직 번역되지 않았습니다. 최신 내용은 영문으로 볼 수 있습니다.

assert

조건이 false인 경우 오류 발생시키기(Throw Error)

설명

예제

assert(cond)cond가 false인 경우 오류를 발생시킵니다.

예제

assert(cond,msg)cond가 false인 경우 오류를 발생시키고 오류 메시지 msg를 표시합니다.

assert(cond,msg,A1,...,An)cond가 false인 경우 MATLAB® sprintf 함수에 사용되는 것과 같은 형식 변환 문자를 포함하는 오류 메시지를 표시합니다. msg의 각 변환 문자는 값 A1,...,An 중 하나로 변환됩니다.

예제

assert(cond,errID,msg)cond가 false인 경우 오류를 발생시키고 오류 메시지 msg를 표시하며 예외에 대한 오류 ID를 포함합니다. 이 ID를 통해 오류를 구별하고 MATLAB에서 오류가 발생할 때 수행할 동작을 제어할 수 있습니다.

assert(cond,errID,msg,A1,...,An)은 예외에 대한 오류 ID를 포함하고 서식이 지정된 오류 메시지를 표시합니다.

예제

모두 축소

x가 지정된 최솟값보다 큰지 어설션합니다.

minVal = 7;
x = 26;

assert(minVal < x)

이 표현식은 true로 평가되며, 어설션이 통과합니다.

x의 값이 지정된 최솟값과 최댓값 사이에 있는지 어설션합니다.

maxVal = 13;

assert((minVal < x) && (x < maxVal))
Assertion failed.

이 표현식은 false로 평가됩니다. 어설션이 실패하고 MATLAB에서 오류가 발생합니다.

두 숫자의 곱이 배정밀도 숫자인지 어설션합니다.

a = 13;
b = single(42);
c = a*b;

assert(isa(c,'double'),'Product is not type double.')
Product is not type double.

c의 데이터형을 표시하도록 오류 메시지를 보강합니다.

assert(isa(c,'double'),'Product is type %s, not double.',class(c))
Product is type single, not double.

assert 함수를 사용하여 정상적인 코드 실행에서 발생해서는 안 되는 조건을 테스트할 수 있습니다. 계수가 숫자형인 경우 계산된 근도 숫자형이어야 합니다. 지정된 계수와 계산된 근을 사용한 2차 방정식은 0이 되어야 합니다.

function x = quadraticSolver(C)

validateattributes(C,{'numeric'},{'size',[1 3]})

a = C(1);
b = C(2);
c = C(3);

x(1) = (-b+sqrt(b^2-4*a*c))/(2*a);
x(2) = (-b-sqrt(b^2-4*a*c))/(2*a);
assert(isnumeric(x),'quadraticSolver:nonnumericRoots',...
    'Computed roots are not numeric')

y1 = a*x(1)^2+b*x(1)+c;
y2 = a*x(2)^2+b*x(2)+c;
assert(y1 == 0,'quadraticSolver:root1Error','Error in first root')
assert(isequal(y2,0),'quadraticSolver:root2Error','Error in second root')

end

입력 인수

모두 축소

어설션할 조건으로, 유효한 MATLAB 표현식으로 지정됩니다. cond가 false이면 assert 함수에서 오류가 발생합니다. cond는 관계 연산자(예: < 또는 ==)와 논리 연산자(예: &&, || 또는 ~)를 포함할 수 있습니다. 논리 연산자 andor를 사용하여 복합형(Compound) 표현식을 생성합니다. MATLAB은 연산자 우선 순위 규칙에 따라 복합형 표현식을 왼쪽에서 오른쪽으로 구합니다.

예: a<0

예: exist('myfunction.m','file')

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

참고

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

예: 'Assertion condition failed.'

숫자형 배열, 문자형 배열 또는 string형 배열 이 입력 인수는 msg의 변환 지정자에 해당하는 값이나 변환 지정자를 대체하는 값을 제공합니다.

어설션 실패 식별자로, 문자형 벡터 또는 string형 스칼라로 지정됩니다. ID를 사용하여 오류의 원인을 보다 효율적으로 식별하거나 프로그램에서 선택한 오류 서브셋을 제어할 수 있습니다.

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

예: 'MATLAB:singularMatrix'

예: 'MATLAB:narginchk:notEnoughInputs'

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

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

확장 기능

참고 항목

|

R2007a에 개발됨