Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP set_error_handler() 함수 완벽 가이드 – 사용자 정의 오류 처리 방법

PHP의 set_error_handler() 함수는 스크립트에서 발생하는 오류를 처리할 사용자 정의 함수(콜백)를 설정하는 함수입니다. 이 함수를 사용하면 PHP 기본 오류 처리 방식 대신 개발자가 직접 만든 방식으로 오류 메시지를 출력하거나 로그로 기록할 수 있습니다.

set_error_handler()는 이전에 정의된 오류 핸들러가 있다면 그 이름을 문자열로 반환하고, 실패 시 NULL을 반환합니다.

문법(Syntax)

set_error_handler ( error_handler, error_types );

매개변수(Parameters)

  • error_handler − 오류가 발생했을 때 실행될 사용자 정의 함수를 지정합니다. 이 콜백 함수는 일반적으로 다음과 같은 형태로 작성됩니다: handler(int $errno, string $errstr, string $errfile, int $errline)

  • error_types − 사용자 정의 오류 핸들러가 어떤 오류 보고 수준(report level)에 반응할지 지정합니다. 기본값은 E_ALL이며, 필요에 따라 E_WARNING, E_NOTICE 등 특정 수준만 선택할 수도 있습니다.

반환값(Return)

이전에 정의된 오류 핸들러가 존재하면 해당 핸들러 이름을 담은 문자열을 반환하고, 없거나 오류가 발생한 경우 NULL을 반환합니다.

예제(Example)

다음은 set_error_handler()를 활용해 사용자 정의 오류 처리기를 등록하고, trigger_error()로 직접 오류를 발생시키는 예제입니다.

<?php
function customError($errno, $errstr, $errfile, $errline) {
    echo "Custom error: [$errno] $errstr\n";
    echo "Error on line $errline in $errfile\n";
    echo "Ending Script"; die();
}
// 사용자 정의 오류 핸들러 설정
set_error_handler("customError");

$test = 0;
// 조건이 참이면 오류 발생
if ($test > -1) {
    trigger_error("A custom error has been triggered");
}
?>

실행 결과(Output)

Custom error: [1024] A custom error has been triggered
Error on line 16 in /home/cg/root/1531703/main.php Ending Script

정리

set_error_handler()는 오류 발생 시 화면에 표시되는 내용을 자유롭게 제어할 수 있게 해주는 강력한 도구입니다. 실무에서는 오류 메시지를 파일이나 데이터베이스에 로깅하거나, 운영 환경에서 민감한 정보가 노출되지 않도록 처리할 때 널리 활용됩니다. 단, 치명적인 오류(fatal error) 중 일부는 이 핸들러로 잡을 수 없으므로, register_shutdown_function() 등과 함께 사용하는 것이 좋습니다.