횽들은 에러 처리를 어떻게 하십니까 ㅠㅠ?

전 프로그래밍을 완전 방어적으로 하는데..

친구들은 \"무슨 코드에 에러 처리가 이렇게 많아 ㅋㅋㅋ\"라고 놀라곤 합니다 ㅠㅠ

제가 쓰는 에러 처리 방식은 Windows API 방식(거의 C언어 프로그램의 정석인듯 하던데..) 인데요..

클래스를 만들때, 다음의 멤버 함수를 두고,
private bool setError(); // 무조건 false반환 -> return setError(...); 방식 가능
public unsigned int getError();

멤버 함수 안에서 오류가 나면,
if (expresions) return setError(error contents);
이런식으로 오류를 설정해줍니다.

그리고 에러는 instance.getError() 이런식으로 사용합니다

그런데 이 방식을 쓰다보니 생기는 문제는,

a()
ㄴb() : 엇 c에서 에러났네? return setError(ERROR_C_FAILED);
 ㄴc() : 엇 read()함수가 에러났네? return setError(ERROR_READ_FAILED);

이런 쳐죽일 코드를 작성할 가능성이 높아집니다 ㅠㅠ
(보통은 b()에서 c()를 호출할때 \"if (!c()) return false; // 에러는 안에서 처리됬지롱~\" 이렇게 코딩을합니다)

하지만.. 분명히 무언가 더 효율적인 에러 처리 방법이 있을것 같아서!

이렇게 프갤에 요청을..ㅠㅠ

답변 부탁드릴께요 ㅠㅠ