>  기사  >  백엔드 개발  >  PHP 오류 처리 및 구현 방법

PHP 오류 처리 및 구현 방법

jacklove
jacklove원래의
2018-05-22 14:16:411438검색

이 글에서는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.