이전: 오류 잡기, 상위 문서: 오류 다루기   [차례][찾아보기]


12.1.3 오류 복구

옥타브에는 오류를 정정하는 여러 방법이 있습니다. try/catch 구역, unwind_protect/unwind_protect_cleanup 구역 마지막으로 onCleanup 명령이 있습니다.

onCleanup 명령은 일반적으로 옥타브 변수(방아쇠)와 임의 함수(작동)를 잇습니다. 옥타브 변수가 함수 반환, 오류, clear로 지워짐 따위로 사라지면, 할당한 함수를 실행합니다.

이 함수는 열린 기록철 다루개 닫기, 오류 문구 출력, 전역 변수를 초기값으로 초기화 등 정리에 필수적인 모든 작업을 할 수 있습니다. 아래 예시는 옥타브 부호에서 아주 편리한 예시입니다. 예시:

function rand42
  old_state = rand ("state");
  restore_state = onCleanup (@() rand ("state", old_state));
  rand ("state", 42);
  …
endfunction  # rand generator state restored by onCleanup
객체 = onCleanup (함수)

지워지면 주어진 함수를 실행하는 특수 객체를 만듭니다.

객체를 여러 변수(또는 낱칸 배열이나 구조체 배열의 원소)에 복사하거나 함수가 반환하면, 함수를 객체의 마지막 사본이 지워질 때 실행합니다. 울안 onCleanup 변수를 여러 개 만들면, 호출 순서는 정해지지 않습니다. 비슷한 함수를 보려면, 비보호 시행문을 보십시오.