나는 예외가 가능한 곳에서 최대한 가깝게 처리되는 방법 에 대한 이 질문 에 대한 조언을 읽었 습니다.
모범 사례에 대한 나의 딜레마는 try / catch / finally를 사용하여 열거 형 (또는 값을 나타내는 int, 오류의 경우 0, 오류의 경우 1, 확인의 경우 2, 경고에 대한 2 등) 을 반환 해야하는지 여부 입니다. 응답은 항상 순서대로되어 있습니까? 아니면 호출 부분이 처리 할 수 있도록 예외를 통과시켜야합니까?
내가 수집 할 수있는 것에서 이것은 사례에 따라 다를 수 있으므로 원래의 조언은 이상하게 보입니다.
예를 들어, 웹 서비스에서는 항상 상태를 반환하고 싶기 때문에 모든 예외를 즉시 처리해야하지만 http를 통해 일부 데이터를 게시 / 가져 오는 함수 내부에서는 말할 수 있습니다. 예외 (예 : 404의 경우)는 예외가 발생한 예외를 통과합니다. 그렇지 않은 경우 호출 자체에 결과의 품질 (오류 : 404) 및 결과 자체를 알리는 방법을 만들어야합니다.
데이터를 가져 오거나 게시하는 도우미 함수 내에서 404 예외를 시도하는 것이 가능하지만, 그래야합니까? smallint를 사용하여 프로그램의 상태를 표시하고 (물론 적절하게 문서화),이 정보를 온전한 유효성 검사 목적 (모든 ok / 오류 처리)으로 사용하는 것만입니까?
업데이트 : 주요 분류에 치명적 / 치명적이지 않은 예외가 예상되었지만 대답을 방해하지 않기 위해 이것을 포함하고 싶지 않았습니다. 질문이 무엇인지 명확히하겠습니다. 예외를 던지지 않고 예외를 처리하십시오. 원하는 효과 : 오류를 감지하고 복구하십시오. 복구가 불가능한 경우 가장 의미있는 피드백을 제공하십시오.
다시 http get / post 예제를 사용하면 원래 발신자에게 발생한 일을 설명하는 새 객체를 제공해야합니까? 이 헬퍼가 사용중인 라이브러리에있는 경우 조작에 대한 상태 코드를 제공하거나 try-catch 블록에 포함 시키겠습니까? 이를 설계 하는 경우 상태 코드를 제공하거나 예외를 던져서 상위 레벨에서 상태 코드 / 메시지로 대신 변환하도록 하시겠습니까?
개요 : 예외를 생성하는 대신 코드 조각이 생성 될 수있는 결과와 함께 상태 코드를 반환하는 경우 어떻게 선택 했습니까?