기초
PHP는 여러 내부 오류 조건에 대한 응답으로 오류를 보고합니다. 이것들은 여러 다른 조건을 알리는 데 사용할 수 있으며 필요에 따라 표시 및/또는 기록할 수 있습니다.
PHP가 생성하는 모든 오류에는 유형이 포함됩니다. 이러한 오류 유형 목록과 해당 동작에 대한 간략한 설명 및 오류가 발생할 수 있는 방법을 사용할 수 있습니다.
PHP로 오류 처리하기
오류 처리기가 설정되지 않은 경우 PHP는 구성에 따라 발생하는 모든 오류를 처리합니다. 보고되는 오류와 무시되는 오류는 error_reporting
php.ini 지시문에 의해 제어되거나 런타임에 error_reporting()을 호출하여 제어됩니다. 그러나 스크립트 실행이 시작되기 전에 일부 오류가 발생할 수 있으므로 구성 지시문을 설정하는 것이 좋습니다.
개발 환경에서는 PHP에서 발생하는 문제를 인식하고 수정해야 하므로 error_reporting
을 항상 E_ALL
로 설정해야 합니다. 프로덕션에서는 이것을 E_ALL & ~E_NOTICE & ~E_DEPRECATED
와 같이 덜 장황한 수준으로 설정하기를 원할 수 있지만 많은 경우 잠재적인 문제에 대한 조기 경고를 제공할 수 있으므로 E_ALL
도 적절합니다.
PHP가 이러한 오류에 대해 수행하는 작업은 두 가지 추가 php.ini 지시문에 따라 다릅니다. display_errors
는 오류가 스크립트 출력의 일부로 표시되는지 여부를 제어합니다. 이는 데이터베이스 암호와 같은 기밀 정보를 포함할 수 있으므로 프로덕션 환경에서는 항상 비활성화해야 하지만 문제를 즉시 보고할 수 있으므로 개발 중에는 활성화하는 데 유용합니다.
오류를 표시하는 것 외에도 PHP는 log_errors
지시문이 활성화된 경우 오류를 기록할 수 있습니다. 이것은 error_log
에 의해 정의된 파일 또는 syslog에 모든 오류를 기록합니다. 이는 발생하는 오류를 기록하고 해당 오류를 기반으로 보고서를 생성할 수 있으므로 프로덕션 환경에서 매우 유용할 수 있습니다.
사용자 오류 처리기
PHP의 기본 오류 처리가 적절하지 않은 경우 set_error_handler()로 설치하여 사용자 정의 오류 처리기로 여러 유형의 오류를 처리할 수도 있습니다. 일부 오류 유형은 이러한 방식으로 처리할 수 없지만 처리할 수 있는 유형은 스크립트가 적합하다고 판단하는 방식으로 처리할 수 있습니다. 이메일 보내기와 같은 로그를 통해.