더북(TheBook)

우리는 적어도 프로그램을 종료하기 전에 유익한 정보를 주는 오류 메시지를 제공하는 목적으로 예외를 잡을 수 있다.

try {
    read_matrix_file("does_not_exist.dat");
} catch (cannot_open_file& e) {
    cerr << "Hey guys, your file is not exist! Im out.\n";
    exit(EXIT_FAILURE);
}

예외를 잡으면 문제가 해결됐다고 간주하고 catch 블록 이후부터 실행을 계속한다. 실행을 종료하기 위해 <cstdlib> 헤더에서 exit를 사용했다. exit 함수는 main 함수에 없는 경우에도 실행을 종료한다. 이 함수는 이후 실행이 너무 위험하거나 호출하는 함수에 예외에 대한 해결책이 없을 때만 사용해야 한다.

또는 나중에 처리할 수 있는 예외를 다시 던져 문제가 되는 부분을 알리거나 부분적인 복구 조치를 계속할 수 있다.

try {
    read_matrix_file("does_not_exist.dat");
} catch (cannot_open_file& e) {
    cerr<< "O my gosh, the file is not there! Please caller help me.\n";
    throw e;
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.