Java에서와 달리 C++는 예외처리를 필수로 여기지 않아 학교에서도 간단하게만 언급하고 넘어가는 편이다.

내가 들은 수업에선 거의 유사코드에 가까운 코드로 예시를 들었고… throw로만 예외처리를 한 코드였기 때문에 제대로 된 예외처리를 연습해볼 수 없었다.

그리고 C++에서는 STL에서 stdexception이라는 헤더를 제공해주는데, 이것으로 구현한 예외처리가 아니면 예외처리로 인정하지 않겠다는 컴파일러의 경고를 만날 수 있다. (물론 pragma disable로 무시할 수 있다.)

만약 자신만의 예외처리 클래스를 만들고 또 그것으로 예외를 처리하고 싶다면 아래와 같이 구현하면 된다.

Exception.h

 모든 자식 예외처리의 부모가 되는 RuntimeException 클래스이다.

TestException.h

 RuntimeException 클래스를 상속받은 자식 클래스를 구현해보았다.

Test.h

 TestFirstException 예외를 처리하는 부분이 담겨있는 메소드를 가진 Test 클래스이다.

main.cpp 

 드라이버 프로그램의 소스 코드이다. 아래는 실행 결과이다.

TestException

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.