>  기사  >  백엔드 개발  >  PHP 오류 처리 및 구현 - CSDN 블로그

PHP 오류 처리 및 구현 - CSDN 블로그

不言
不言원래의
2018-04-13 10:23:091367검색

이 기사에서는 PHP의 오류 처리 및 구현을 소개합니다. 필요하면 친구에게 참고할 수 있습니다.

1.php에서 오류, 경고 및 예외 처리를 구현하는 방법은 무엇입니까? 함수는 해당 오류를 처리하는 데 사용됩니다.



php 예외 프롬프트는 오류/경고/알림의 세 가지 범주로 나뉩니다.
오류 보충:
Fatal Error: 치명적인 오류(스크립트 작업 종료)
E_ERROR // Fatal running error, the 오류는 복구할 수 없으며 스크립트 실행이 일시 중지됩니다.
E_CORE_ERROR // PHP 시작 초기화 프로세스 중 치명적인 오류
E_COMPILE_ERROR // Zend 스크립트 엔진에서 생성된 E_ERROR와 마찬가지로 컴파일 중 치명적인 오류
E_USER_ERROR // 사용자 정의 오류 메시지 . PHP 함수를 사용하는 것과 같습니다. 잠재적으로 위험한 오류가 발생했지만 PHP 엔진이 불안정해지지는 않았음을 나타냅니다.
구문 분석 오류: 컴파일 중 구문 분석 오류, 구문 오류(스크립트 실행 종료)
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과 달리 함수 실행 중에 오류를 캡처합니다


대상 파일이 실행 중에 오류를 발견하면 시스템은 지정된 함수를 콜백합니다.
예:

<?php
		register_shutdown_function( "fatal_handler" );
		set_error_handler("error_handler");
		define(&#39;E_FATAL&#39;,  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);
		  }
		}
		//获取所有的error
		function error_handler($errno,$errstr,$errfile,$errline){
		    $str=<<<EOF
		         "errno":$errno
		         "errstr":$errstr
		         "errfile":$errfile
		         "errline":$errline
			EOF;
		//获取到错误可以自己处理,比如记Log、报警等等
		    echo $str;
		}


		//error_get_last() 捕获到的执行错误结果


		//error_clear_last() 	清除最后一次产生的错误信息


		//上面两者可以捕获所有错误,警告, 异常,但作性能考虑,不建议使用其捕获警告异常

관련 권장사항:

PHP 오류 처리, 자동 로딩, 스택 메모리 및 실행 모드에 대한 간략한 분석

PHP 오류 처리 인스턴스 방법

PHP 오류 및 예외 디버깅 비디오 튜토리얼 리소스 공유













위 내용은 PHP 오류 처리 및 구현 - CSDN 블로그의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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