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; }
* 이름이 ‘허버트’인 모든 독자에게: 귀하의 이름을 선택한 것에 대해 진심으로 사과드린다.