2009-11-11 5 views

답변

24

아니요, 반환 값이 원한다면 언제든지 반환 할 수 있습니다. (할당 된 경우 메모리가 지워 졌는지 확인하십시오).

5

나는 내 코드에서 몇 종료 지점을 선호하는, 그래서 내가 작성합니다

int rc = 1; 
try { 
    // some code 
} 
catch(...) { 
    rc = 0; 
} 
return rc; 

나는 그것을 디버깅을 쉽게 찾을 나는 하나의 return 문을 추적해야 할 때 코드를 읽어 보시기 바랍니다.

+5

개인적으로 나는 더 나은 것도 발견하지만, 함수의 크기에 따라 다르며 오류 상태에 도달했을 때 많은 코드를 처리하는 것보다 여러 종료 점 (IMHO)을 갖는 것이 더 깨끗한 경우가 있습니다. –

1

어떤 종류의 예외가 코드에 의해 발생되는지 알지 못한다면 그렇게 할 수 있습니다.하지만이 경우 클라이언트는 반환 값을 기반으로 조치를 취해야합니다.

그러나 사용자 정의 예외를 생성하고이를 버리면 클라이언트가 어떤 일이 일어 났는지 알 수 있습니다. 실제로 예외의 실제 사용은 라이브러리 작성자에게 권장됩니다.

+5

어떤 예외가 발생하는지 모를 경우 비즈니스를 포착 할 수 없습니다. 예외를 잡아서 다시 던지지 않는 경우 메모리 부족, 액세스 위반, 버스 오류, 프린터 온 (on-memory) 등 예외의 원래 원인을 해결하는 것이 더 낫습니다. 당신이 들어 본 적이없는 다른 많은 것들. 당신이 기대하는 바를 잡으십시오. 그 밖의 모든 것은 발신자에게 보냅니다. –

-1

은 try/catch 블록 다음에 함수의 끝에서 돌아 오는 것이 좋습니다.

+2

무언가를 말하는 것이 좋은 연습은 합리적인 근거가 없으면 그리 쓸모가 없습니다. –

관련 문제