오류-1

tk_jang·2023년 5월 30일

좋은코드 나쁜코드

목록 보기
4/20

1. 오류의 복구 가능성

  • 복구 가능한 오류
    1. 사용자의 잘못된 입력 오류
    2. 네트워크 오류
    3. 중요하지 않은 작업 오류

위 같은 오류가 발생했을때 전체 시스템이 작동을 멈춘다면 훌륭한 사용자 경험은 아니다.
적당한 오류 메시지를 송출 하고 사용자가 대처 할 수 있도록 환경을 제공하는 것이 조금 더 나은 방법이다.
하지만 위 같이 오류 발생시에 복구할 수 없는 것이 있다.

  • 복구 불가능한 오류
    1. 코드와 함께 추가되어야 하는 리소스가 없다.
    2. 잘못된 입력 인수로 호출
    3. 일부 필요한 상태를 사전에 초기화 하지 않음

오류를 복구할 수 있는 방법이 없다면, 유일하게 코드가 할 수 있는 합리적인 방법은 피해를 최소화하고 개발자가 문제를 발견하고 해결할 가능성을 최대화하는 것이다.

2.견고성 vs 실패

오류가 발생할 때 다음 중 하나를 선택해야 한다.

  1. 실패, 더 높은 코드 계층이 오류를 처리하게 하거나 전체 프로그램의 작동을 멈추게 한다.
  2. 오류를 처리하고 계속 진행한다.

지금은 실패에대해 더 이야기 해볼 것이다.

  • 신속하게 실패하라

    신속하게 실패하기는 가능한 한 문제의 실제 발생 지점으로부터 가까운 곳에서 오류를 나타내는 것이다.

    • 복구할 수있는 오류의 경우 :

      호출하는 쪽에서 오류로부터 훌륭하고 안전하게 복구할수 있는 기회를 최대한으로 제공하고
    • 복구할 수 없는 오류의 경우 :

      개발자가 문제를 신속하게 파악하고 해결할 수 있는 기회를 최대한 제공한다.

    두경우 모두 소프트웨어가 의도치 않게 잠재적으로 위험한 상태가 되는 것을 방지한다.

  • 요란하게 실패하라

    요란한 실패는 간단히 말하자면 오류가 발생하는데도 불구하고 아무도 모르는 상황을 막고자 하는 것이다.
    이를 위한 가장 명백한 방법은 예외를 발생해 프로그램이 중단되게 하는 것이다.

    코드가 실패할 때 신속하고, 요란하게 오류를 나타내면 개발 도중이나 테스트하는 동안에 버그가 발견될 가능성이 크다. 그렇지 않더라도 배포된 후에 오류 보고를 보기 시작할 것이고 보고 내용으로부터 버그가 발생한 위치를 정확히 알 수 있는 이점이 있다.

3. 오류의 전달 방법

오류의 전달방법에는 명시적 방법과 암시적 방법이 있다.

자바는 검사 예외 와 비검사 예외 의 개념을 모두 가지고 있다.
자바를 제외하고 대부분의 주요언어는 비검사 예외만 가지고 있으므로 거의 모든 언어의 예외라는 용어는 일반적으로 비검사 예외이다.

0개의 댓글