[완료]함수를 만들때 에러 핸들링 질문입니다.
글쓴이: anaud2 / 작성시간: 월, 2008/06/16 - 4:44오후
안녕하세요
KLDP로 자주 글을 올리고 정보를 얻고 있는 신입사원입니다.
이번에 평문을 받아서 암호화를 하는 함수를 만들고 있는데요
함수를 제작할때 사용자가 어떤실수를 할지 모르니 에러핸들링을 잘하라란 지시를 받고 어떤사항을 초반에 체크를 해야할까 고민중에 있습니다.
일단은 들어오는 메세지가 널인지 아닌지 판단
공개키파일, 파일오픈시 오픈이 됐는지 안됐는지 판단
함수의 인자중 옵션값이 있는데 0과1 이외의 다른수가 오는지 판단
이3가지 말고는 잘안떠오르는데...
고수들은 프로그램을 만들때 어떤사항을 판단하고 에러메세지를 넣어주나요?
Forums:
다음만 체크하면
다음만 체크하면 되지 않을까요?
* 입력 값에 대한 체크
* 함수내에서의 예외상황에 대한 체크
* 출력 값에 대한 체크
답변 감사합니다.
많은 도움이 되었습니다. 감사합니다.
일반적인, 절대적인
일반적인, 절대적인 기준이 있다기 보다는
"범용 라이브러리 > 공동 개발 작업 > 개인 단독 작업"
정도의 상대적인 에러 처리 수준이 필요할겁니다. 또한 책임의 소지가 caller인지 callee인지도 이슈가 될만하고요.
예전에 첫직장에서 같이 작업하던 두 개발자가 에러 처리를 두고 설전을 벌이던 것이 기억나네요.
'NULL이 들어오면 무조건 죽어버리기 vs NULL이라 말해주고 에러 처리하기' 였는데 둘다 만만치 않은 사람들이라 아주 오래 싸우더군요. ^^;
저는 그때 어차피 복구가 불가능하므로 화끈하게 죽어버리는 쪽의 손을 들어주었던 기억이... ^^;
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
-----
오늘 나의 취미는 끝없는, 끝없는 인내다. 1973 法頂
에러처리나
에러처리나 죽어버리기는 주로 Controller에서만 하고 Model과 View에서는 거의 하면 안되는 것 아닐까 합니다.
순수한 로직에 에러처리가 들어가버리면 이식성이 떨어지고, 로직 변경에 따라서 에러처리 또한 변경해야할 경우가 생깁니다. 로직은 그저 정의된 return 값이나 정의된 exception만 뱉어내는게 옳을 것 같습니다. 물론 중요한 버그는 죽어버리는 것이 더 좋을 수도 있겠네요.
View에 에러처리가 들어가버리면 역시 이식성이 떨어지는데다, 계속 메시지가 발생하거나 죽어버린다면 문제가 심각해지겠지요. 그래서 그저 잘못된 정보가 들어오더라도 프로그램이 죽지는 않는 정도만 해주고 컨트롤러에게 떠넘기는 것이 맞다고 봅니다.
------------------------------
How many legs does a dog have?
------------------------------
How many legs does a dog have?
댓글 달기