다음: 실행 가능한 옥타브 풀그림, 이전: 명령줄 편집, 상위 문서: 시작하기   [차례][찾아보기]


2.5 옥타브 오류 표기법

잘못된 풀그림에 대해 옥타브는 두 가지 방식으로 오류를 보고합니다.

입력한 내용을 해석할 수 없을 때는 구문 분석 오류가 발생합니다. 예를 들어, 아래와 같이 오탈자가 나면,

octave:13> function y = f (x) y = x***2; endfunction

곧 다음과 같은 안내가 나옵니다.

parse error:

  syntax error

>>> function y = f (x) y = x***2; endfunction
                              ^

구문 분석 오류 대부분은 승수 기호(‘^’)를 이용해 줄에서 오류가 난 부분을 표지합니다. 위 경우에는 멱법 예약어(**)에 오자가 나서 오류가 출력되었습니다. 오류 표지인 승수 기호가 표기된 세 번째 ‘*’ 직전까지는 올바르지만, 세 번째 ‘*’를 해석할 수 없기 때문입니다.

다른 종류의 오류 보고는 식의 해를 구할 때에 나옵니다. 이 오류는 풀그림이 실행 중이거나, 해를 구할 때에 발생하기 때문에 실행 시간 오류 또는 평가 오류라고 합니다. 예를 들어, 입력한 이전 함수 정의의 실수를 나중에 수정하면,

octave:13> f ()

다음과 같이 응답합니다.

error: `x' undefined near line 1 column 24
error: called from:
error:   f at line 1, column 22

오류 문구는 여러 부분으로 나뉘어 나오고, 오류가 발생한 원천 부호를 찾을 수 있도록 약간의 정보가 제공됩니다. 안내는 오류가 발생한 최소 지점에서 생성되며, 표현식 상자와 함수 호출을 역추적할 정보가 제공됩니다.

위 예시에서, 첫 번째 줄은 어떤 함수나 표현식의 1 번째 줄, 24 번째 열에 정의되지 않은 ‘x’라는 변수를 찾았음을 보여줍니다. 오류가 함수 내부에서 발생하면, 함수 정의를 포함하는 기록철 첫 부분부터 줄 번호를 셉니다. 함수 밖에서 오류가 발생하면, 주 명령처리기 문자열로 보통 표시되는 입력 줄로 줄 번호를 셉니다.

오류 문구 예시의 두세 번째 줄은 함수 f에서 오류가 발생했음을 보여줍니다. 또 다른 함수 g가 함수 f를 호출했다고 한다면 오류 내역에는 다음 한 줄이 덧붙습니다.

error:   g at line 1, column 17

이런 함수 호출 내역은 풀그림 오류 발생 이전을 추척하고, 재실행 전에 오류를 해결하는 데에 상당히 편리합니다.


다음: 실행 가능한 옥타브 풀그림, 이전: 명령줄 편집, 상위 문서: 시작하기   [차례][찾아보기]