try catch 블록에서 C++의 catch 블록에서 값을 반환하는 것은 나쁜 습관입니까?try catch 블록에서 catch 내부로 돌아 오는 것이 좋지 않습니까? 좋은 연습입니다
try
{
//Some code...
return 1;
}
catch(...)
{
return 0;
}
try/catch를 사용하는 좋은 방법은 무엇입니까?
try catch 블록에서 C++의 catch 블록에서 값을 반환하는 것은 나쁜 습관입니까?try catch 블록에서 catch 내부로 돌아 오는 것이 좋지 않습니까? 좋은 연습입니다
try
{
//Some code...
return 1;
}
catch(...)
{
return 0;
}
try/catch를 사용하는 좋은 방법은 무엇입니까?
아니요, 반환 값이 원한다면 언제든지 반환 할 수 있습니다. (할당 된 경우 메모리가 지워 졌는지 확인하십시오).
나는 내 코드에서 몇 종료 지점을 선호하는, 그래서 내가 작성합니다
int rc = 1;
try {
// some code
}
catch(...) {
rc = 0;
}
return rc;
나는 그것을 디버깅을 쉽게 찾을 나는 하나의 return 문을 추적해야 할 때 코드를 읽어 보시기 바랍니다.
어떤 종류의 예외가 코드에 의해 발생되는지 알지 못한다면 그렇게 할 수 있습니다.하지만이 경우 클라이언트는 반환 값을 기반으로 조치를 취해야합니다.
그러나 사용자 정의 예외를 생성하고이를 버리면 클라이언트가 어떤 일이 일어 났는지 알 수 있습니다. 실제로 예외의 실제 사용은 라이브러리 작성자에게 권장됩니다.
어떤 예외가 발생하는지 모를 경우 비즈니스를 포착 할 수 없습니다. 예외를 잡아서 다시 던지지 않는 경우 메모리 부족, 액세스 위반, 버스 오류, 프린터 온 (on-memory) 등 예외의 원래 원인을 해결하는 것이 더 낫습니다. 당신이 들어 본 적이없는 다른 많은 것들. 당신이 기대하는 바를 잡으십시오. 그 밖의 모든 것은 발신자에게 보냅니다. –
은 try/catch 블록 다음에 함수의 끝에서 돌아 오는 것이 좋습니다.
무언가를 말하는 것이 좋은 연습은 합리적인 근거가 없으면 그리 쓸모가 없습니다. –
개인적으로 나는 더 나은 것도 발견하지만, 함수의 크기에 따라 다르며 오류 상태에 도달했을 때 많은 코드를 처리하는 것보다 여러 종료 점 (IMHO)을 갖는 것이 더 깨끗한 경우가 있습니다. –