에러처리 얼마나 하시나요?
글쓴이: shodhpfooqmm / 작성시간: 토, 2012/03/17 - 11:25오후
보통 라이브러리 함수 및 시스템콜을 사용할 때,
리턴값을 확인 후 대해 모든 에러처리를 하시나요?
코딩을 할 때 어느정도의 에러처리를 해야될지 감이 잘 안오네요.
모든 함수에 대해 리턴값을 확인하고 에러 유무를 확인하는 것이 좋은 습관일까요?
이에 따른 오버헤드는 크지 않을까요?
여러분은 어떻게 하시는지 궁금합니다.
Forums:
추천 검색 키워드: depensive
추천 검색 키워드: depensive programming
에러처리는 가능한 해주시는 편이 좋습니다. 그래야지
에러처리는 가능한 해주시는 편이 좋습니다.
그래야지 나중에 문제가 생겼을 경우 재현이 쉽기 때문입니다.
100% 발생하는 에러의 경우에는 바로 재현이 가능하겠지만
어쩌다 생기는 1%의 에러 경우에는 재현이 무지 힘들어집니다.
에러처리를 하면서 생기는 부하보다 에러처리를 안하면서 생기는 시스템 불안정과
비교해 보시면 에러처리를 해야할지 말아야할지 판단이 되실 것 같습니다.
에러처리에 따르는 부하를 계산해보자면 리턴값 비교후 에러의 경우 jmp가 가장 오버헤드가
클것입니다. 정수형 리턴값 비교야 뭐 cmp 명령어 하나 추가가 되는 오버헤드가 있겠지만
가장 큰 오버헤드는 참으로 만족시 jmp를 하게 되면 생기는 파이프라인 리셋 오버헤드가
가장 클 것입니다.
하지만 생각해봐야 할 것이 에러의 경우는 정상적인 경우의 예외 사항입니다. 즉 발생빈도가
매우 낮다는 것이지요. 그리고 이미 에러 케이스로 들어갈 경우에는 정상이 아니므로
시스템이 정상 진행이 안될 가능성이 높기 때문에 비정상일 경우 성능 걱정은 무의미하다고 생각됩니다.
정상 케이스보다 훨씬 못미치는 확률로 발생하는 jmp 코드의 오버헤드 보다는
저의 경우에는 에러처리 해서 버그 빨리 잡고 빨리 집에 가는 편은 택하겠습니다.
저는 두가지로 구분해서 에러처리를 합니다.
1. 에러가 발생하더라도 진행에 문제가 없는 경우 -> 로그만 출력하고 진행
2. 더이상 진행이 불가능 할 경우 -> 몇번 재시도 및 에러 복구 시도후 그래도 안되면 로그 출력후 종료
-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.
에러 처리는 모두 다 해 주어야 합니다. 나중에 큰
에러 처리는 모두 다 해 주어야 합니다. 나중에 큰 고생하지요.
에러처리를 알면서 안하는건 오늘 할 일을 내일로
에러처리를 알면서 안하는건 오늘 할 일을 내일로 미루는 것과 같습니다.
댓글 달기