Page 123

handler

(예외 처리기)로 제어권을 넘긴다. 이때 핸들러의 위치는 다양하다. 함수 바로 뒤에 나올

수도 있고, 연속된 함수 호출(스택 프레임)을 거슬러 올라가야 나올 수도 있다. 야구에 비유하 면 익셉션을 던지는 코드가 외야수라면, 익셉션이라는 공을 받는 사람은 외야수에게 가장 가까 이 있는 내야수(익셉션 핸들러)다. 예를 들어 [그림 14-1]처럼 세 함수가 연달아 호출됐을 때 의 스택 상태를 살펴보자. 익셉션 핸들러가 있는 A ( )를 호출한 다음 B ( )를 호출하고, B ( )는 다시 C ( )를 호출했는데, C ( )에서 익셉션이 발생했다고 하자. 그림 14-1

A( ) 스택 프레임 B( ) 스택 프레임 C( ) 스택 프레임

그림 14-2

A( ) 스택 프레임

[그림 14-2]는 핸들러가 익셉션을 받는 상황을 보여준다. 이 상태를 보면 C ( )와 B ( )에 대한 스택 프레임은 삭제됐고 A ( )에 대한 스택 프레임만 남았다.

C#이나 자바를 비롯한 최신 프로그래밍 언어는 익셉션 메커니즘을 지원한다. C++도 강력한 익셉션 메커니즘을 제공한다. C 언어에만 익숙한 프로그래머라면 익셉션이란 개념이 생소하겠 지만, 한 번 익혀두면 익셉션 메커니즘이 없는 언어로 돌아가고 싶지 않을 것이다.

14.1.2 C++에서 익셉션이 필요한 이유 앞서 설명했듯이 프로그램을 실행하다 보면 에러가 발생하기 마련이다. 하지만 기존에 작성된

C 또는 C++ 프로그램을 보면 에러를 처리하는 방식이 제각각이고 체계가 없는 경우가 많다. 함수가 정수 코드를 리턴하거나, errno 매크로를 사용해서 에러를 표시하는 것처럼 C 프로그

14장 에러 처리하기 639

Profile for 한빛미디어

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

전문가를 위한 C++ (개정4판) - 맛보기  

『전문가를 위한 C++』(개정4판)은 새로 추가된 기능과 관련 도구를 비롯해 C++에 대한 모든 내용을 코드와 솔루션 위주로 소개한다. 저자는 실전 프로그래밍에 적용할 수 있는 현실적인 기법을 다양하게 소개하였으며, 본 교재는 C++를 더 깊이 이해하...

Advertisement