> 类库下载 > PHP类库 > 본문

PHP 오류 처리

高洛峰
풀어 주다: 2016-10-08 17:42:47
원래의
1309명이 탐색했습니다.

오류 유형

오류 유형 정수 값을 영리하게 설정했기 때문에 비트 연산자를 사용할 수 있습니다.

1 E_ERROR(정수)

치명적인 런타임 오류 . 이러한 유형의 오류는 일반적으로 메모리 할당으로 인해 발생하는 문제와 같이 복구할 수 없는 상황입니다.
스크립트가 종료되고 계속 실행되지 않음
예: 정의되지 않은 함수 호출 시 포착되지 않은 예외가 발생함

2 E_WARNING(정수)

런타임 경고(치명적이지 않음) 오류)
프롬프트 메시지만 표시되고 스크립트가 종료되지 않습니다.

4 E_PARSE(정수)

컴파일 시간 구문 분석 오류입니다.
파싱 오류는 파서에 의해서만 생성됩니다.
register_shutdown_function은 이 파일에서 발생한 이 오류를 캡처할 수 없습니다.

8 E_NOTICE(정수)

런타임 알림입니다. 스크립트에서 오류로 나타날 수 있는 상황이 발생했음을 나타냅니다. 그러나 정상적으로 실행될 수 있는 스크립트에도 유사한 알림이 있을 수도 있습니다
예: 정의되지 않은 변수 사용

16 E_CORE_ERROR(정수)

PHP 초기화 시작 중에 치명적인 오류가 발생했습니다.
이 오류는 E_ERROR와 유사하지만 PHP 엔진 코어에서 생성됩니다.

32 E_CORE_WARNING(정수)

PHP 초기화 시작 중 경고(치명적이지 않은 오류)가 발생했습니다.
E_WARNING과 유사하지만 PHP 엔진 코어에서 생성됨

E_COMPILE_

컴파일 관련
64 E_COMPILE_ERROR(정수)
치명적인 컴파일 시간 오류입니다. E_ERROR와 유사하지만 Zend 스크립트 엔진에 의해 생성됩니다. PHP 4부터
128 E_COMPILE_WARNING(정수)
컴파일 시간 경고(치명적이지 않은 오류). E_WARNING과 유사하지만 Zend 스크립팅 엔진에 의해 생성됩니다.

E_USER_

사용자 생성
256 E_USER_ERROR(정수)
사용자 생성 오류 메시지입니다. E_ERROR와 유사하지만 코드에서 PHP 함수 Trigger_error()를 사용하여 사용자가 생성합니다. PHP 4부터
512 E_USER_WARNING(정수)
사용자가 생성한 경고 메시지입니다. E_WARNING과 비슷하지만 코드에서 PHP 함수 Trigger_error()를 사용하여 사용자가 생성합니다. PHP 4부터
1024 E_USER_NOTICE(정수)
사용자가 생성한 알림 정보입니다. E_NOTICE와 비슷하지만 코드

2048 E_STRICT(정수)

코드에서 PHP 함수 Trigger_error()를 사용하여 사용자가 생성했습니다. 코드 수정에 대한 PHP 제안을 활성화하여 코드가 최상의 상태인지 확인합니다. 품질 최고의 상호 운용성 및 향후 호환성.

4096 E_RECOVERABLE_ERROR(정수)

잡을 수 있는 치명적인 오류입니다. 잠재적으로 위험한 오류가 발생했지만 PHP 엔진이 불안정해지지는 않았음을 나타냅니다. 사용자 정의 핸들러(set_error_handler())에 의해 오류가 포착되지 않으면 E_ERROR가 되고 스크립트가 종료됩니다.

8192 E_DEPRECATED(정수)

런타임 알림.
활성화하면 향후 버전에서 제대로 작동하지 않을 수 있는 코드에 대한 경고가 표시됩니다.

16384 E_USER_DEPRECATED(정수)

사용자 생성 경고 메시지입니다. E_DEPRECATED와 비슷하지만 코드에서 PHP 함수 Trigger_error()를 사용하여 사용자가 생성합니다.

30719 E_ALL(정수)

E_STRICT 모든 오류 및 경고 문자 발신

관련 기능 처리 오류

error_reporting

int error_reporting( [ int $level ] )

어떤 종류의 PHP 오류를 보고할지 설정

// 모든 PHP 오류 보고서를 닫고 새로운 오류 보고 수준을 반환 error_reporting(0);/ / 단순 실행 오류 보고error_reporting(E_ERROR | E_WARNING | E_PARSE);

매개변수를 사용하지 않으면 현재 오류 보고 수준을 반환합니다.

error_get_last

마지막 가져오기 오류가 발생한 경우, Register_shutdown_function()은 종종

array error_get_last ( void )

를 사용하여 결과를 반환합니다.

Array(
[type] => 8
[메시지] => 정의되지 않은 변수: a [file] => C:WWWindex.php [line] => 2)

trigger_error

생성 사용자 수준 오류/경고/알림 정보

bool Trigger_error ( string $error_msg [, int $error_type = E_USER_NOTICE ]

error_log

다음으로 오류 정보 보내기 웹 서버 오류 로그 또는 파일에 대한 파일이 존재하지 않는 경우 생성됩니다

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

message_type
오류를 보낼 위치 설정
0 메시지는 설정에 따라 운영 체제의 로깅 메커니즘이나 파일을 사용하여 PHP 시스템 로그로 전송됩니다. php.ini의 error_log입니다.
1개의 메시지가 대상 매개변수에 설정된 이메일 주소로 전송됩니다. 네 번째 매개변수인 extra_headers는 이 유형에서만 사용됩니다.
2는 더 이상 선택 사항이 아닙니다.
3 메시지가 대상 파일로 전송됩니다. 문자 메시지는 기본적으로 새 줄로 처리되지 않습니다.
SAPI의 로그 핸들러로 직접 전송되는 4개의 메시지

set_error_handler()

스크립트에서 발생하는 오류를 처리하도록 사용자 정의 오류 처리 함수 설정

혼합 set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )

error_types에 지정된 오류 유형은 콜백 함수가 FALSE를 반환하지 않는 한 PHP 표준 오류 핸들러를 우회합니다. error_reporting() 설정은 아무런 효과가 없으며 오류 처리기가 계속 호출됩니다. 필요할 때 die()를 사용하는 것은 귀하의 책임입니다.
참고
다음 수준의 오류는 사용자 정의 함수로 처리할 수 없습니다: E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING 및 set_error_handler() 함수가 있는 파일에서 생성된 대부분의 E_STRICT

error_handler

handler( int $errorLevel , string $errorMessage [, string $errfile [, int $errline [, array $errcontext ]]] )

errcontext , 예 오류가 발생했을 때 활성 기호 테이블을 가리키는 배열입니다. 즉, errcontext에는 오류가 발생한 범위의 모든 변수 배열이 포함됩니다. 사용자의 오류 처리기는 오류 컨텍스트를 수정해서는 안 됩니다.

set_Exception_handler

사용자 정의 예외 처리 함수 설정

getMessage (), "n";}set_Exception_handler('Exception_handler'); 새로운 예외 발생('잡히지 않은 예외');echo "실행되지 않음";?>

register_shutdown_function

이 함수는 스크립트가 끝난 후에 실행되는 함수입니다(정상으로 끝나든 종료나 오류로 끝나든)

php.ini의 오류 구성

php 오류 메커니즘 요약

error_reporting = E_ALL // 오류 수준, 수준 보고 error_log = /tmp/php_errors.log // php에서 오류 표시 위치 기록 display_errors = On // 출력에 오류를 표시할지 여부, 이 출력은 Page, stdoutdisplay_startup_errors = On // 시작 프로세스의 오류 정보를 페이지에 표시할지 여부 위에서 언급한 몇 가지 Core 유형 오류가 시작 중에 발생한다는 점을 기억하세요. 이는 이러한 오류가 페이지에 표시되는지 여부를 제어하는 ​​것입니다. . log_errors = On // 오류 로그 기록 여부 log_errors_max_len = 1024 // 오류 로그의 최대 길이ignore_repeated_errors = Off // 반복 오류 무시 여부 track_errors = Off // 마지막 오류 기록을 위해 전역 변수 $php_errormsg 사용 여부 xmlrpc_errors = 0 / /오류를 기록하기 위해 XML-RPC 오류 메시지 형식을 사용할지 여부 xmlrpc_error_number = 0 // XML-RPC fallCode 요소의 값으로 사용됩니다. html_errors = On // 출력의 기능 및 기타 정보를 HTML 링크로 변환할지 여부 docref_root = http://manual/en/ // html_errors가 활성화된 경우 이 링크의 루트 경로는 무엇입니까 fastcgi.logging = 0 // PHP 오류를 fastcgi에 던질지 여부

PHP는 기본적으로 로그 및 표준 출력을 사용합니다(fpm 모드인 경우 표준 출력은 페이지입니다)
error_reporting의 매개 변수는 다음과 같습니다. 오류 수준. 오류를 트리거해야 하는 수준을 나타냅니다.
display_errors는 오류 정보가 표준 출력에 표시되어야 하는지 여부를 제어합니다.
log_errors는 오류 정보가 로그에 기록되어야 하는지 여부를 제어합니다.
error_log는 오류 로그가 표시되는 위치입니다.

<br/>
로그인 후 복사


관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!