누군가 디자인/레이아웃 질문에 도움이 될지 궁금합니다. 실행을 멈추고 오류를 반환하려는 코드의 한 지점에 오면 어떻게 정리를해야합니까? 제가 여기서했던 것처럼 코드를 복제합니까, 아니면 다른 방법입니까? 게리오류 종료 후 정리?
1
A
답변
3
if(fileContents == nil) {
NSLog(@"ReadError: %@", [fileError localizedDescription]);
[pool drain];
return 1;
} else {
NSLog(@"Success : %@", fileContents);
}
// Clean up
[pool drain];
return 0;
}
// END
정확하게 사건의 경우는 "결과"라는 이름의 변수를 도입하는 것이 더 쉽습니다.
int result = 0;
if(fileContents == nil) {
NSLog(@"ReadError: %@", [fileError localizedDescription]);
result= 1;
} else {
NSLog(@"Success : %@", fileContents);
}
// Clean up
[pool drain];
return result;
}
// END
0
저는 RocketSurgeon과 비슷한 접근 방식을 사용하고 있습니다. 단, 실행중인 "everything is ok"플래그로 사용합니다. 그렇게하면 언제든지 ok
을 false
으로 설정하고 추가 코드를 건너 뛰어도 끝 부분에 모든 관련 정리 (그림과 같이 C가 포함됨)가 유지됩니다.
bool ok = true;
type *someptr = 0;
if (ok)
{
if ((someptr = (type *)malloc(...)) == NULL)
{
// report error
ok = false;
}
}
if (ok)
{
if(fileContents == nil)
{
NSLog(@"ReadError: %@", [fileError localizedDescription]);
ok = false;
}
else
{
NSLog(@"Success : %@", fileContents);
}
}
// Clean up
if (someptr)
free(someptr);
[pool drain];
return ok;
관련 문제
- 1. 종료 전에 버퍼 정리
- 2. 예외 발생 (오류 발생) 프로그램 종료 후
- 3. C++ 오류 정리
- 4. Android : 강제 종료 후 SharedPreference 오류
- 5. 스크립트 종료 후 화면 종료
- 6. 기간 종료 후 브라우저 종료
- 7. 프로세스 종료/종료시 공유 POSIX 객체 정리
- 8. Selenium 테스트 후 데이터베이스 정리
- 9. 셀레늄 테스트 후 데이터 정리
- 10. iPhone에서 OpenGL을 삭제 한 후 정리
- 11. 종료 후 복원
- 12. 종료 후 크래시 디버깅? (메인 반환 후)
- 13. JSON에서 데이터를로드 한 후 메모리 정리
- 14. 연결 강제 종료 오류
- 15. 오류 종료 코드 1
- 16. 루프 종료 후 로컬 변수
- 17. 동영상 종료 후 활동 끝내기
- 18. AuthorizationExecuteWithPrivileges로 시작한 후 프로세스 종료
- 19. gtkmm statusicon 생성 후 종료
- 20. 예상 예외 테스트 종료 후
- 21. 예기치 않은 종료 후 제어
- 22. 프로그램 종료 후 무한 루프
- 23. Android : 결과 종료 후 결과
- 24. 왜 다형 유형 오류 및 정리 질문?
- 25. DOM 이벤트는 바인딩 된 요소가 종료 된 후 삭제됩니까?
- 26. 브라우저를 종료 한 후 파일 업로드를 계속할 수 있습니까?
- 27. ExecutorService의 종료 시간 결정
- 28. 정리 정리 ORM 정의를 전송 하시겠습니까?
- 29. Xcode에서 모두 정리/정리 중 스크립트 실행
- 30. 스크립트 실행 후 PowerShell 프로세스 종료
확실한 방법은 성공하면 0 (성공) 또는 0 (오류)이 아닌 main()으로 1을 반환하는 것입니다. – fuzzygoat
아니요, 이것은 간단한 예일뿐입니다. 일반적으로 유용한 오류 코드를 반환하거나 "return ok? 0 : 1"을 수행하려고합니다. – Tom