> 백엔드 개발 > PHP 튜토리얼 > PHP에서 치명적인 오류를 안전하게 처리하는 방법은 무엇입니까?

PHP에서 치명적인 오류를 안전하게 처리하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-10-24 11:49:29
원래의
285명이 탐색했습니다.

How to Safely Handle Fatal Errors in PHP?

PHP에서 치명적인 오류를 안전하게 처리하기

PHP의 오류 처리 기능에는 "허용된 메모리 크기가 소진되었습니다."와 같은 치명적인 오류 포착이 포함됩니다. 이 오류는 스크립트가 과도한 메모리를 소비할 때 발생합니다. 메모리 제한을 늘리는 대신 사용자에게 맞춤 메시지를 반환할 수 있습니다.

한 가지 효과적인 방법은 Register_shutdown_function()을 활용하는 것입니다. 이 함수는 error_get_last()를 확인하는 콜백을 등록합니다. 스크립트 실행이 완료된 후 오류를 확인하면 치명적인 오류가 발생했는지 확인하고 적절하게 처리할 수 있습니다.

다음은 구현 예입니다.

<code class="php">ini_set('display_errors', false);
error_reporting(-1);

set_error_handler(function($code, $string, $file, $line){
        throw new ErrorException($string, null, $code, $file, $line);
    });

register_shutdown_function(function(){
        $error = error_get_last();
        if(null !== $error)
        {
            echo 'Caught at shutdown';
        }
    });

try
{
    while(true)
    {
        $data .= str_repeat('#', PHP_INT_MAX);
    }
}
catch(\Exception $exception)
{
    echo 'Caught in try/catch';
}</code>
로그인 후 복사

이 스크립트가 실행되면 " Caught at shutdown'은 종료 함수에서 치명적인 오류가 포착되었음을 나타냅니다.

종료 함수의 $error 배열을 검사하여 오류의 원인을 파악하고, 오류 재발급 등 적절한 조치를 취할 수 있습니다. 다른 매개변수를 사용하여 요청하거나 응답을 반환합니다.

error_reporting()을 높은 수준(-1)으로 유지하는 것이 권장되지만 다른 모든 오류 처리에는 여전히 set_error_handler() 및 ErrorException을 사용해야 한다는 점에 유의하는 것이 중요합니다. 스크립트 실행 중 문제를 방지해야 합니다.

위 내용은 PHP에서 치명적인 오류를 안전하게 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿