본문 바로가기
컴퓨터/전산, 그 외

사용자 친화적 오류 메세지

by adnoctum 2011. 8. 6.


   프로그래머는 최종 사용자(end-user)에게 유용한 오류 메세지를 출력해야 한다. 에러 처리가 난해한 경우가 많은데, 길지는 않지만 약간의 경험에 의하면 오류 메세지를 누구에게 보여줄 것인가, 를 명확히 정하면 에러 처리가 어느 정도 일관성이 있게 되기는 한다. 라이브러리의 경우 그 라이브러리 사용자를 위한 에러 메세지를 출력해야 할 것이고, 일반 GUI 프로그램이라면 최종 사용자를 위한 오류 메세지를 출력하게 될 것이다. 최종 사용자를 위한 오류 메세지가 아래와 같다면 난감하지 않을 수 없다.


아니면,





대체 저 하나은행 오류는 뭘 어쩌라는 거지? 밑의 오류도 마찬가지이다. 두 오류 메세지 모두 프로그래머에게 보여 줄 메세지가 최종 사용자에게 보여진 것 같은데, 최종 사용자 입장에서는 이런 오류를 만났을 때 할 수 있는 일이 거의 없다, 구글링을 제외하면.

   일반적으로 최종 사용자를 위한 오류 메세지와 프로그래머가 보기 위한 에러 메세지를 구분하여 코딩할 때, 일일이 없애거나 살리는 것이 번거로울 수 있는데, 이럴 땐 전처리 지시자(preprocessor directive)를 이용하는 것이 한 방법이다. 가령,

#define SHOW_ERROR_MESSAGE_FOR_END_USER
#define SHOW_ERROR_MESSAGE_FOR_DEVELOPER
//#undef SHOW_ERROR_MESSAGE_FOR_END_USER
//#undef SHOW_ERROR_MESSAGE_FOR_DEVELOPER

위와 같은 메크로와, 저 메크로의 상태에 따라 VERIFY나 ASSERT 처럼 없애거나 살리는 것처럼.