try/catch를 사용한 오류 처리법
프로그램에서 오류가 발생한 후에 try/catch
문을 사용하여 코드를 실행할 수 있습니다. try/catch
문은 다음과 같은 경우에 유용할 수 있습니다.
다른 방식으로 오류 없이 프로그램을 마치려는 경우
오류로 인한 원치 않는 부작용을 없애야 하는 경우
문제가 있는 입력 파라미터나 명령이 많이 있는 경우
try/catch
문을 다음 의사코드와 비슷하게, 코드 블록으로 정렬합니다.
try try block... catch catch block... end
try block
내에서 오류가 발생하면 MATLAB®은 try
블록 내 나머지 명령을 모두 건너뛰고 catch block
의 명령을 실행합니다. try block
내에서 오류가 발생하지 않을 경우 MATLAB은 catch block
전체를 건너뜁니다.예를 들어, try/catch
문을 사용하면 오류를 발생시키지 않을 수 있습니다. n
개 요소에서 나올 수 있는 k
개 요소 조합의 개수를 반환하는 combinations
함수를 예로 들어 보겠습니다.
function com = combinations(n,k) com = factorial(n)/(factorial(k)*factorial(n-k)); end
MATLAB은 k > n
일 때마다 오류를 발생시킵니다. 보유한 요소 개수 n
보다 더 많은 요소 개수 k
로 이루어진 집합은 생성할 수 없습니다. try/catch 문을 사용하면, 입력값의 순서에 관계없이 오류를 피하고 이 함수를 실행할 수 있습니다.
function com = robust_combine(n,k) try com = factorial(n)/(factorial(k)*factorial(n-k)); catch com = factorial(k)/(factorial(n)*factorial(k-n)); end end
robust_combine
을 사용하면 정수 순서에 무관하게 다 유효한 입력값으로 취급합니다.C1 = robust_combine(8,4) C2 = robust_combine(4,8)
C1 = 70 C2 = 70
선택적으로, catch
문 다음에 변수가 나오는 경우 오류에 대한 추가 정보를 캡처할 수 있습니다.
catch MExc
MExc
는 발생한 오류에 대한 추가 정보를 포함하는 MException
클래스 객체입니다. MException
객체에 포함된 정보에 액세스하는 방법은 MATLAB 애플리케이션의 예외 처리 항목을 참조하십시오.