PHP는 오류에 대한 처리를 할 수 있는 몇가지 함수들을 제공합니다.
PHP는 다양한 오류의 정의와 메시지 코드를 지원합니다. 내부함수 error_reporting()는 PHP 에러를 정의합니다.
|내부함수|
PHP에서 사용되는 대표적인 에러코드와 기호는 다음과 같습니다.
1: E_ERROR 에러를 출력하고 스크립트의 실행을 중단합니다.. 메모리 할당 에러등의 복구가 힘든 문제의 에러를 의미합니다. 2: E_WARNING 경고를 출력하지만 스크립트는 정상적으로 실행됩니다. 4: E_PARSE 8: E_NOTE 뭔가 에러를 감지를 하였으나 출력은 하지 않습니다. 16: E_CODE_ERROR PHP 코어에 의하여 생성된 에러 메시지 입니다. 32: E_CODE_WARNING PHP 코어에 의하여 생성된 에러 메시지 입니다.
예제) error_report.php
PHP에서 발생한 오류에 대한 정보를 가지고 오고 로그를 출력할 수 있습니다.
|내부함수|
내부함수 error_log()는 메시지를 오류처리 루틴으로 전달합니다. 지정한 타입에 따라서 메시지를 출력할 곳을 지정할 수 있습니다.
타입0: php.ini 에 지정된 시스템에 에러를 출력합니다. 타입1: 지정한 이메일로 에러메시지를 출력합니다. 타입2: 호스트,IP주소의 PHP 디버깅으로 출력합니다. 디버깅 출력은 remote debugging 설정이 되어 있어야 합니다. 타입3: 지정한 파일로 출력합니다.
예제) error_log.php
|내부함수|
내부함수 error_get_last()는 마지막으로 발생한 오류 가지고 옵니다.
예제) error_get_last.php
|내부함수|
내부함수 error_clear_last()는 가장 최근 오류를 지웁니다.
예제) error_clear_last.php
|내부함수|
내부함수 trigger_error()는 사용자 수준의 오류 / 경고 / 통지 메시지를 생성합니다.
예제) trigger_error.php
콘솔출력) [Mon Aug 21 16:59:44 2017] ::1:57186 [500]: /trigger_error.php - Cannot divide by zero in C:\php-7.1.4-Win32-VC14-x86\trigger_error.php on line 3
PHP는 역추적에 관련된 몇 개의 내부함수들을 지원합니다.
|내부함수|
내부함수 debug_backtrace()는 역 추적을 실행합니다.
예제) debug_backtrace.php
화면출력)
|내부함수|
내부함수 debug_print_backtrace()는 역추적을 출력합니다.
예제) debug_print_backtrace.php
화면출력)
PHP는 오류처리 핸들에 관련된 몇가지 함수들을 지원합니다.
|내부함수|
내부함수 set_error_handler()는 사용자 정의 오류 처리기 함수를 설정합니다.
|내부함수|
내부함수 restore_error_handler()는 이전 오류 처리 함수를 복원합니다.
|내부함수|
내부함수 set_exception_handler()는 사용자 정의 예외 처리 함수를 설정합니다.
|내부함수|
내부함수 restore_exception_handler()는 이전에 정의 된 예외 핸들러 함수를 복원합니다.