내가 복구 할 수없는 오류에 예외를 슬로우, 슬로우 및 예외 실패 할 경우.
예를 들어 getById ($ id)와 같은 메소드가 있다고 가정 해 보겠습니다. 아무것도 발견되지 않았던 경우는 null를 돌려주는 것은 괜찮습니다. 이제 getById ($ id)를 호출하는 다른 메소드 delete ($ id)가 있다고 가정 해 보겠습니다. 이 경우, 아무것도 발견되지 않는 경우 (즉, getById가 null를 돌려주는 경우), 예외가 발생됩니다.
반환 값이 null, 빈 배열 또는 문자열 또는 정수인 오류를보고 할 때마다이 오류를 처리해야하며 반환 값에 따라 다른 정리를 수행해야합니다. 이것은 관련된 모든 메소드/함수에서 어떤 것을 더럽힐 수 있습니다.
예외를 사용하면 이러한 오류를 한 곳 (캐치)에서만 처리하고 catch 할 수 있습니다. 따라서 오류를 검사하는 코드를 복제 할 필요가 없습니다 (반환 값은 빈 배열입니까? 1, 2 또는 9 등의 반환 값입니까?). 게다가 예외를 사용하면 소스를 따라 많은 if를 작성하지 않고도 (비즈니스 로직 예외 또는 유효하지 않은 인수와 같은) 종류의 오류를 쉽게 "카탈로그"할 수 있습니다.
함수/메소드가 뭔가를 반환하면 (정상적으로 종료 된 경우) 반환 값은 사용할 수있는 값입니다 (빈 배열, null 또는 빈 문자열은 모두 유효한 반환 값입니다). 함수/메소드가 예외를 던지면 분명히 잘못된 것이 있습니다.
또 다른 중요한 점은 엄격한 검사 (=== 대 ==)를 사용하지 않으면 null이 false, 0 및 빈 문자열과 같을 수 있으므로 다른 종류의 버그가 발생할 수 있습니다. 이것은 예외가 장점이 될 수있는 곳입니다.
물론 당신이 무엇을 결정하든 중요한 것은 코드에 따른 선택과 일치하는 것입니다.