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

throwAsCaller

호출하는 함수 내에서 발생하는 것처럼 예외 발생시키기

설명

예제

throwAsCaller(exception)은 호출 함수 내에서 발생하는 것처럼 예외를 발생시킵니다. 예외는 현재 실행 중인 함수를 종료하고 키보드 또는 catch 블록으로 컨트롤을 반환합니다. try/catch 문 밖에서 예외를 발생시킬 경우 MATLAB®은 명령 창에 오류 메시지를 표시합니다.

try/catch 문이나 MException.last 함수를 통해 MException 객체에 액세스할 수 있습니다.

경우에 따라, 오류는 실제로 예외를 발생시키는 함수를 가리키는 것보다, 호출 함수에서 예외의 원인이 되는 위치를 가리키는 것이 더 유용합니다. throwAsCaller를 사용하여 오류 표시를 단순화할 수 있습니다.

예제

모두 축소

작업 폴더에 함수 sayHello를 만듭니다.

function sayHello(N)
checkInput(N)
str = ['Hello, ' N '!'];
disp(str)

function checkInput(N)
if ~ischar(N)
    ME = MException('sayHello:inputError','Input must be char.');
    throw(ME)
end

명령 프롬프트에서 숫자형 입력값으로 함수를 호출합니다.

sayHello(42)
Error using sayHello>checkInput (line 9)
Input must be char.

Error in sayHello (line 2)
checkInput(N)

스택 맨 위는 MATLAB이 예외를 발생시킨 라인이 9임을 나타냅니다. 처음 스택 프레임 후에 MATLAB은 호출 함수에서 받은 정보를 표시합니다.

sayHello.m의 라인 9에서 throw(ME)throwAsCaller(ME)로 바꾸고 함수를 다시 호출합니다.

sayHello(42)
Error using sayHello (line 2)
Input must be char.

스택 맨 위는 호출 함수에서의 오류 위치가 라인 2임을 나타냅니다.

입력 인수

모두 축소

오류의 원인과 위치를 포함하는 예외로, 스칼라 MException 객체로 지정됩니다.

R2007b에 개발됨