PHP는 치명적인 수준의 오류를 포착합니다.
공식 참조
공식 웹 사이트 set_error_handler register_shutdown_function모든 오류를 완벽하게 포착하는 방법
set_error_handler는 대부분의 오류 유형을 캡처하는 데 사용할 수 있습니다. FATAL 수준 오류가 발생하면 PHP가 직접 작업을 종료하므로 set_error_handler에서 설정 한 콜백 함수를 트리거 할 수 없습니다. 이때 프로그램 종료를위한 콜백 함수를 설정하려면 register_shutdown_function을 사용해야합니다. register_shutdown_function에서 설정 한 콜백은 프로세스의 오류 유무에 관계없이 프로그램 종료 후 실행된다는 점에 유의해야합니다. 따라서이 콜백에서 오류가 발생했는지 여부도 확인해야하며 오류가 발생하면 로그에 기록합니다. 자세한 내용은 다음 코드를 참조하십시오.
set_error_handler('exception_handler');
register_shutdown_function('shutdown_handler');
function exception_handler($err_no, $err_str, $err_file, $err_line)
{
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}
function shutdown_handler()
{
$error = error_get_last();
if (empty($error)) {
return;
}
error_reporting(0);
// save error log
// ...
error_reporting(E_ALL);
}