set_error_handler() 함수는 사용자 정의 오류 처리 함수를 설정합니다.
런타임 시 사용자 고유의 오류 처리 방법을 생성하는 데 사용되는 함수입니다.
이 함수는 이전 오류 처리기를 반환하거나 실패 시 NULL을 반환합니다.
set_error_handler(error_function,error_types)
매개변수 | 설명하다 |
---|---|
오류_함수 | 필수의. 오류가 발생할 때 실행할 함수를 지정합니다. |
error_types | 선택 과목. 사용자 정의 오류가 표시되는 오류 보고 수준을 지정합니다. 기본값은 "E_ALL"입니다. 가능한 오류 보고 수준은 아래 표에 자세히 설명되어 있습니다. |
error_function(error_level,error_message,error_file,error_line,error_context)
매개변수 | 설명하다 |
---|---|
오류_수준 | 필수의. 사용자 정의 오류에 대한 오류 보고 수준을 지정합니다. 값 숫자여야 합니다. 가능한 오류 보고 수준은 아래 표에 자세히 설명되어 있습니다. |
오류_메시지 | 필수의. 사용자 정의 오류에 대한 오류 메시지를 지정합니다. |
오류_파일 | 선택 과목. 오류가 발생한 파일 이름을 지정합니다. |
오류_라인 | 선택 과목. 오류가 발생한 줄 번호를 지정합니다. |
오류_컨텍스트 | 선택 과목. 오류가 발생한 활성 기호 테이블을 가리키는 배열을 지정합니다. 즉, error_context에는 각 변수가 오류를 발생시키는 존재 범위를 설명하는 배열이 포함됩니다. |
값 | 끊임없는 | 설명하다 |
---|---|---|
2 | E_경고 | 치명적이지 않은 런타임 오류입니다. 스크립트 실행이 중지되지 않습니다. |
8 | E_공지사항 | 런타임 알림. 스크립트 검색은 버그일 수 있지만 스크립트를 정상적으로 실행할 때도 발생할 수 있습니다. |
256 | E_USER_ERROR | 사용자가 생성한 치명적인 오류입니다. 이는 프로그래머가 PHP 함수 Trigger_error()를 사용하여 생성한 E_ERROR와 같습니다. |
512 | E_USER_WARNING | 사용자가 생성한 치명적이지 않은 오류입니다. 이는 프로그래머가 PHP 함수 Trigger_error()를 사용하여 생성한 E_WARNING과 같습니다. |
1024 | E_USER_NOTICE | 사용자가 생성한 알림. 이는 프로그래머가 PHP 함수 Trigger_error()를 사용하여 생성한 E_NOTICE와 같습니다. |
4096 | E_RECOVERABLE_ERROR | 포착 가능한 치명적인 오류. 이는 사용자 정의 핸들(set_error_handler() 참조)에 의해 포착될 수 있는 E_ERROR와 같습니다. |
8191 | E_ALL | E_STRICT를 제외한 모든 오류 및 경고 수준(PHP 6.0부터 E_STRICT는 E_ALL의 일부임) |
팁: 이 기능을 사용하면 표준 PHP 오류 처리 기능이 완전히 우회됩니다. 필요한 경우 사용자 정의 오류 처리기는 스크립트(die())를 종료해야 합니다. 참고: 스크립트가 실행되기 전에 오류가 발생하면 해당 시점에 사용자 정의 프로그램이 등록되지 않았기 때문에 사용자 정의 오류 처리기가 사용되지 않습니다.
<?php//error 핸들러 함수 function customError($errno, $errstr, $errfile, $errline) { echo "<b>사용자 정의 오류:</b> [$errno] $errstr<br />" echo " $errfile의 $errline 라인에 오류가 있습니다<br />"; echo "Ending Script"; die(); }//set error handlerset_error_handler("customError");$test=2;//trigger errorif ($test>1) { Trigger_error("사용자 정의 오류가 발생했습니다.");
위 코드의 출력은 다음과 같습니다.
사용자 정의 오류: [1024] C:webfoldertest.phpEnding 스크립트의 19행에 사용자 정의 오류가 TriggerError가 발생했습니다.