함수가 리소스를 획득할 때(즉, 파일을 열고, 여유 저장소에서 일부 메모리를 할당하고, 뮤텍스를 획득하는 등) 리소스가 적절하게 해제되는 시스템의 향후 실행을 위해 종종 필수적이다. 종종 적절한 릴리즈는 호출자에게 반환하기 전에 이를 획득한 함수가 릴리스하도록 할 수 있다. void use_file(const char∗ fn) // naive code { FILE∗ f = fopen(fn,"r"); // ... use f ... fclose(f); } fopen() 호출 후 및 fclose() 호출 전에 문제가 발생하면 예외로 인해 fclose()가 호출되지 않고 use_file()이 종료될 수 있다는 것을 알아차릴 때까지는 그럴듯해 보인다. 예외 처리를 지원하지 않는 언어에서도 똑같은 문제가 발생할 수..