더북(TheBook)

1.6.2.1 동기 부여

옛날 스타일의 오류 처리를 설명하기 전에, 독창적인 수학자인 반(反) 영웅 허버트(Herbert)*를 소개하고 알고리즘이 얼마나 훌륭하게 동작하는지 보여주는 악마의 프로그래밍을 고려해 보자. 그는 진짜 사람처럼 프로그래밍하는 법을 배웠지만 모던 프로그래밍에 나오는 최신 기능들을 잘 모른다.

컴퓨터 문제를 처리할 때 그가 좋아하는 방식은 (main 함수가 하는 것처럼) 오류 코드를 반환하는 방식이다. 파일에서 행렬을 읽기 위해 파일이 실제로 있는지 검사한다고 가정해 보자. 만약 파일이 없다면 오류 코드 1을 반환한다.

int read_matrix_file(const char* fname, ...)
{
    fstream f(fname);
    if (!f.is_open())
        return 1;
    ...
    return 0;
}

 

* 이름이 ‘허버트’인 모든 독자에게: 귀하의 이름을 선택한 것에 대해 진심으로 사과드린다.

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