나는 매우 간단한 질문으로 고심하고 있습니다.
이제 서버 응용 프로그램을 만들고 있는데 예외에 대한 계층 구조를 만들어야합니다 (일부 예외는 이미 존재하지만 일반 프레임 워크가 필요합니다). 이 작업을 어떻게 시작합니까?
이 전략을 따르는 것을 생각하고 있습니다.
1) 무엇이 잘못 되었습니까?
- 허용되지 않는 것이 있습니다.
- 잘못된 매개 변수로 인해 무언가가 요청되고 허용되지만 작동하지 않습니다.
- 내부 오류로 인해 무언가가 요청되고 허용되지만 작동하지 않습니다.
2) 누가 요청을 시작합니까?
- 클라이언트 애플리케이션
- 다른 서버 응용 프로그램
3) 메시지 전달 : 우리는 서버 응용 프로그램을 다루면서 메시지를주고받는 것에 관한 것입니다. 메시지를 잘못 보내면 어떻게 될까요?
따라서 다음과 같은 예외 유형이 발생할 수 있습니다.
- ServerNotAllowedException
- ClientNotAllowedException
- ServerParameterException
- ClientParameterException
- InternalException (서버가 요청의 출처를 모르는 경우)
- ServerInternalException
- ClientInternalException
- MessageHandlingException
이것은 예외 계층 구조를 정의하는 매우 일반적인 접근 방법이지만 명확한 사례가 없을 수도 있습니다. 내가 다루지 않은 영역에 대한 아이디어가 있거나,이 방법의 단점을 알고 있거나, 이런 종류의 질문에 대한보다 일반적인 접근 방법이 있습니까 (후자의 경우 어디서 찾을 수 있습니까)?
미리 감사드립니다
catch
블록에 대해 포함 된 오류 메시지보다 예외에 더 많이 사용하지 않습니다. 나는 파일을 읽는 과정에서 메모리를 할당하지 못하는 것으로 파일을 읽지 못하는 것과 관련된 예외에 대해 실제로 할 수있는 다른 것을 가지고 있지 않기 std::exception
때문에 포함 된 오류 메시지를 포착 하고보고하는 경향이 있습니다. 그것에 "Failed to open file: %s", ex.what()
인쇄하기 전에 스택 버퍼.