더북(TheBook)

C++를 사용하면 문자열, 숫자, 사용자 정의 타입 등 모든 타입을 예외로 처리할 수 있다. 그러나 예외를 적절하게 처리하려면 예외 타입을 정의하거나 표준 라이브러리의 메소드를 사용하는 게 좋다.

struct cannot_open_file { };
void read_matrix_file(const char* fname, ...)
{
    fstream f(fname);
    if (!f.is_open())
        throw cannot_open_file{ };
    ...
}

여기에서는 사용자 정의 예외 타입을 도입했다. 2장에서 클래스 정의 방법을 자세히 설명한다. 위의 예제에서 여닫는 괄호만 있으면 되는 빈 클래스를 정의했다(뒤에 세미콜론을 붙인다). 더 큰 프로젝트에서는 대개 std::exception에서 파생한(6장 참조) 예외 타입의 전체 계층 구조를 확립한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.