이 글에서는 PHP 오류 처리를 구현하는 방법을 설명합니다.
PHP에서 오류, 경고 및 예외 처리를 구현하는 방법, 해당 오류를 처리하는 데 사용되는 함수
php 예외 프롬프트는 오류/경고/알림의 세 가지 범주로 나뉩니다.
오류 보충:
치명적인 오류: 치명적인 오류 (스크립트 종료 실행)
E_ERROR // 치명적인 실행 오류, 오류를 복구할 수 없으며 스크립트 실행이 일시 중지됩니다.
E_CORE_ERROR // PHP 시작 시 초기화 과정 중 치명적인 오류
E_COMPILE_ERROR // 치명적인 오류 Zend 스크립트 엔진과 마찬가지로 컴파일하는 동안 E_ERROR
E_USER_ERROR // 사용자 정의 오류 메시지가 생성되었습니다. PHP 함수를 사용하는 것과 같습니다. 잠재적으로 위험한 오류가 발생했지만 PHP 엔진이 불안정해지지는 않았음을 나타냅니다.
Parse 오류: 컴파일 시간 구문 분석 오류, 구문 오류(스크립트 실행이 종료됨)
E_PARSE //컴파일 시간 구문 분석 오류
경고 보충: 경고 오류(프롬프트 정보만 제공되며 스크립트 실행이 종료되지 않음)
E_WARNING // 런타임 경고(치명적이지 않은 오류).
E_CORE_WARNING // PHP 초기화 시작 중에 발생한 경고(치명적이지 않은 오류)입니다.
E_COMPILE_WARNING // 컴파일 경고
E_USER_WARNING // 사용자가 생성한 경고 정보
예외 알림 보충: 알림 오류(알림 정보만 제공되며 스크립트는 작업을 종료하지 않음)
E_NOTICE // 런타임 알림. 스크립트에서 오류로 나타날 수 있는 상황이 발생했음을 나타냅니다.
E_USER_NOTICE // 사용자가 생성한 알림 정보입니다.
php 오류 처리 구현:
register_shutdown_function('funcName') // 매개변수는 오류를 캡처해야 하는 함수의 이름이지만, Register_shutdown_function은 런타임 중에 치명적인 오류만 캡처할 수 있지만 해석 중에는 실행 오류를 캡처할 수 없습니다. 프로그램입니다. 실행이 완료된 후 실행할 함수입니다. (구문 오류, 런타임 중에 발생한 오류 등은 캡처되지 않습니다.)
set_error_handler('funcName') //파라미터는 필요한 콜백의 함수 이름입니다. 이는 Register_shutdown_function 과 달리 함수 실행 중에 오류를 캡처합니다
대상 파일에 오류가 발생하면 시스템은 지정된 함수를 콜백합니다.
예:
register_shutdown_function( "fatal_handler" ); set_error_handler("error_handler"); define('E_FATAL', E_ERROR | E_USER_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_RECOVERABLE_ERROR| E_PARSE ); //获取fatal error function fatal_handler() { $error = error_get_last(); if($error && ($error["type"]===($error["type"] & E_FATAL))) { $errno = $error["type"]; // $errfile = $error["file"]; $errline = $error["line"]; $errstr = $error["message"]; error_handler($errno,$errstr,$errfile,$errline); } }
//모든 오류 가져오기
function error_handler($errno,$errstr,$errfile,$errline){ $str=<< "errno":$errno "errstr":$errstr "errfile":$errfile "errline":$errline EOF; //获取到错误可以自己处理,比如记Log、报警等等 echo $str; } //error_get_last() 捕获到的执行错误结果 //error_clear_last() 清除最后一次产生的错误信息
//위 두 가지 방법으로 모든 오류, 경고, 예외를 캡처할 수 있지만 성능상의 이유로 경고 예외 캡처에는 사용하지 않는 것이 좋습니다.
이 글에서는 오류 처리 방법에 대해 더 자세히 알아보시기 바랍니다. PHP 중국어 웹사이트.
관련 권장 사항:
PHP는 배열의 어느 열에서 다차원 배열의 지정된 값을 어떻게 얻나요? php 기본 학습: PHP 배열 및 데이터 구조php 기본 학습: PHP 파일 시스템위 내용은 PHP 오류 처리 및 구현 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!