두 가지 종류의 오류
오류 처리는 프로그래밍과 사용자 경험에서 매우 중요하지만 종종 간과되는 부분입니다.
예상 오류는 사용자 입력 오류, 네트워크 문제, 권한 부족 등 정상적인 운영 중 발생하며, 개발자의 실수가 아니므로 적절히 처리하고 복구해야 합니다.
이들은 보통 경고나 정보 수준의 로그로 기록하며, 예외를 던지기보다는 오류 결과를 반환하는 방식으로 다루는 것이 권장됩니다.
반면, 예상치 못한 오류는 논리적 버그, 잘못된 가정, null 참조 등으로 인해 발생하며, 개발자의 실수로 간주되어 프로그램을 중단시키는 것이 바람직합니다.
이 오류들은 심각한 문제를 나타내므로 오류나 치명적 로그로 기록하고, 복구보다는 즉각적인 크래시를 통해 문제를 빠르게 인지하는 것이 장기적으로 신뢰성을 높입니다.
오류의 경계는 상황에 따라 다르며, 프로토타입에서는 모든 오류를 예상치 못한 것으로 간주할 수 있지만, 안정성이 중요한 시스템에서는 가능한 많은 오류를 예상 오류로 분류해 처리하는 것이 좋습니다.
이러한 분류는 언어별 철학과도 연관되며, 예를 들어 Rust는 많은 오류를 예상 오류로 다루는 반면, JavaScript나 Python은 그렇지 않은 경향이 있습니다.