훌륭한 프로그래머는 프로그램의 모든 단일 결과를 처리 할 강력한 코드를 작성해야합니다. 그러나 오류가 발생하면 C 라이브러리의 거의 모든 함수가 0 또는 -1 또는 NULL을 반환합니다.
예를 들어 파일을 열려고 할 때와 같이 오류 검사가 필요한 경우가 있습니다. 그러나 나는 종종 필요하다고 느끼지 않기 때문에 printf
또는 오류로 인해 오류 검사를 무시 malloc
합니다.
if(fprintf(stderr, "%s", errMsg) < 0){
perror("An error occurred while displaying the previous error.");
exit(1);
}
특정 오류를 무시하는 것이 좋습니까, 아니면 모든 오류를 처리하는 더 좋은 방법이 있습니까?
try
명령문 에서 많은 오류를 하나의 명령문으로 처리 할 수 있으므로 모든 단일 호출 또는 조작을 점검 할 필요는 없습니다. (또한 일부 언어는 널 역 참조 또는 배열 색인이 범위를 벗어난 것과 같은 간단한 오류를 감지 할 때 다른 언어보다 낫다는 점에 유의하십시오.)
errno
! 이 것이 사실이지만 경우에 당신은 익숙하지 않은 "거의 C 라이브러리의 모든 기능을 반환합니다 0 또는 -1 또는 NULL
오류가있는 때,"그들은 또한 글로벌 설정 errno
변수를 사용하여 액세스 할 수있는, #include <errno.h>
그리고 단순히 읽기 의 값 errno
. 경우에 따라서, 예를 들어, open
(2) 반환 -1
, 당신이 있는지 여부를 확인 할 수 있습니다 errno == EACCES
사용 권한 오류를 표시하거나 것이다, ENOENT
요청 된 파일이 존재하지 않는 것을 나타냅니다 것이다.
try
/을 지원하지 않지만 catch
점프로 시뮬레이션 할 수는 있습니다.