2013-08-23 3 views
1

오랫동안 나를 혼란스럽게 만들었습니다. 반환 코드로 C에서 오류 코드를 설계하는 좋은 방법이 있습니다. 나는 매직 넘버 나 글로벌 매크로를 사용하여 일반적인 에러로 -1을 사용하는 것과 같은 특정 에러를 정의했다. 그러나 프로젝트가 커지면 이러한 오류 코드를 쉽게 관리 할 수 ​​없습니다. 누군가 좋은 오류 코드를 설계하는 방법에 대한 예나 안내서를 줄 수 있습니까?C에서 오류 코드를 설계하기위한 가이드가 있습니까

오류 코드가 오류 유형이나 오류를 발생시키는 함수를 지정하기 위해 일부 비트 필드로 분할 될 수 있다고 생각했습니다. 영감을 얻었으며 오류 코드에 대한 특정 프로젝트가 없습니다. 어쩌면 당신이 알고있는 유명한 프로젝트에 좋은 코딩 된 에러 코드가있을 수 있습니다. 그 프로젝트의 이름을 말해주세요.

많이 감사하겠습니다.

답변

2

enum 데이터 형식을 사용하는 것이 좋습니다. 예 : strerror 사용자 정의의 확장 성을 제공

typedef enum { KEY_NOT_FOUND, INVALID_DATA } errortype; 
+0

당신 말이 맞습니다. 제 질문이 "오류 코드를 코딩하는 방법"으로 바뀔 수도 있다고 생각합니다. 예 : int 변수의 첫 번째 8 비트를 오류 유형으로 사용하고 다른 비트는 특정 오류를 나타냅니다. – Arthur

2

strerror 사용자 정의 오류 codes.This 구현을 제공한다. errno.h은 사용자 정의 오류 값의 기본으로 사용할 수있는 __ELASTERROR을 정의합니다.

+0

그것은 나를 도와줍니다. 몇 가지 일반적인 오류를 제공하고 직접 확장 할 수 있습니다. 그래서 앞으로의 문제는 사용자 정의 오류 코드를 코딩하는 방법입니다. 나는 단순한 정수가 많은 프로젝트에 좋다고 생각하지만 오류 코드를보다 쉽게 ​​관리 할 수있는 코딩 방법이 있어야한다. – Arthur

+0

@Arthur 오류 코드를 정확히 코딩하는 방법을 자세히 설명하십시오 (일부 레이아웃을 의미 함). 게시물을 다시 편집하여 더 명확하게 만들 수 있습니다 (글을 쓸 공간이 많이 생길 수 있습니다.) 이미 grijesh의 답을 간단하고 완벽하게 처리했습니다. –

+0

조언 해 주셔서 감사합니다. 오류 코드에 대한 정확한 아이디어가 없습니다. 나는 단지 영감을 얻고있다. – Arthur