PHP 오류 처리 메커니즘
5200 단어 PHP오류 처리 메커니즘
시스템 오류 프로세서:
PHP 의 정상 적 인 상황 에서 오 류 는 정상적으로 출력 되 지만 일부 프레임 워 크 에서 잘못된 출력 에 영향 을 줄 수 있 습 니 다.프레임 워 크 자체 에 자신의 처리 체제 가 있 을 수도 있 고 코드 에서 처리 할 수도 있 습 니 다.보통 이 몇 가지 함수 설정 입 니 다.
1.error_reporting(); PHP 오류 단 계 를 설정 하고 현재 단 계 를 되 돌려 줍 니 다.
error_reporting(report_level)
인자 level 이 지정 되 지 않 으 면 현재 오류 단 계 를 되 돌려 줍 니 다.다음 몇 가 지 는 level 가능 한 값 입 니 다:
값.
상수
묘사 하 다.
1
E_ERROR
치 명 적 인 운행 오류.이 오 류 를 회수 할 수 없습니다.스 크 립 트 실행 이 중단 되 었 습 니 다.
2
E_WARNING
비치 명 적 인 운행 시 경고.스 크 립 트 가 중단 되 지 않 습 니 다.
4
E_PARSE
컴 파일 시 분석 오류.분석 기 에서 만 생 성 되 어야 할 오 류 를 분석 합 니 다.
8
E_NOTICE
런 타임 알림.이 스 크 립 트 는 오류 일 수도 있 지만 보통 스 크 립 트 를 실행 할 때 발생 할 수도 있 습 니 다.
16
E_CORE_ERROR
치 명 적 인 오 류 는 PHP 가 시 작 될 때 발생 합 니 다.이것 은 PHP 의 핵심 에 있 는 E 와 같다.ERROR
32
E_CORE_WARNING
PHP 시작 시 경고 합 니 다.이것 은 PHP 의 핵심 에 있 는 E 와 같다.WARNING
64
E_COMPILE_ERROR
치 명 적 인 컴 파일 오류.Zend 스 크 립 트 엔진 을 통 해 만들어 진 E 와 같 습 니 다.ERROR
128
E_COMPILE_WARNING
비치 명 컴 파일 시 경고.이것 은 마치 Zend 스 크 립 트 엔진 을 통 해 E 를 생 성 하 는 것 과 같다.WARNING
256
E_USER_ERROR
치 명 적 인 사용자 생 성 오류 입 니 다.이것 은 프로그래머 가 PHP 함 수 를 사용 하 는 것 과 유사 합 니 다. trigger_error() 설치했어 E_ERROR
512
E_USER_WARNING
치 명 적 이지 않 은 사용자 가 만 든 경고 입 니 다.이것 은 프로그래머 가 PHP 함 수 를 사용 하 는 것 과 유사 합 니 다. trigger_error 설치했어 E_WARNING
1024
E_USER_NOTICE
사용자 가 만 든 알림 입 니 다.이것 은 프로그래머 가 PHP 함수 trigger 를 사용 하 는 것 과 유사 합 니 다.error 설치했어 E_NOTICE
2048
E_STRICT
런 타임 알림.PHP 는 코드 의 상호 작용 성과 호환성 을 돕 기 위해 코드 를 바 꾸 는 것 을 권장 합 니 다.
4096
E_RECOVERABLE_ERROR
포획 가능 한 치 명 적 오류,유사 E_ERROR,사용자 정의 프로세서 캡 처 가능(참조) set_error_handler())
8191
E_ALL
모든 오류 와 경고,레벨 E 를 제외 한STRCT(PHP 6.0 에서 ESTRCT 는 E모든 부분
여기 서 주의해 야 할 것 은$level 이 0 일 때 오류 출력 을 닫 습 니 다.즉,어떠한 오류 도 출력 하지 않 습 니 다.
2.set_error_handler()
정의 와 용법
set_error_handler()함수 가 사용자 정의 오류 처리 함 수 를 설정 합 니 다.
이 함 수 는 실행 중인 사용자 의 오류 처리 방법 을 만 드 는 데 사 용 됩 니 다.
이 함 수 는 오래된 오류 처리 프로그램 을 되 돌려 줍 니 다.실패 하면 null 로 돌아 갑 니 다.
문법
set_error_handler(error_function,error_types)
매개 변수
묘사 하 다.
error_function
필수오류 가 발생 했 을 때 실행 할 함 수 를 규정 합 니 다.
error_types
선택 할 수 있다.오류 보고 단 계 를 정 하면 사용자 가 정의 한 오 류 를 표시 합 니 다.묵인 "E_ALL"。
알림:이 함 수 를 사용 하면 표준 PHP 오류 처리 함 수 를 완전히 돌아 갑 니 다.필요 하 다 면 사용자 정의 오류 처리 프로그램 이(die()스 크 립 트 를 종료 해 야 합 니 다.
설명:스 크 립 트 가 실행 되 기 전에 오류 가 발생 하면 사용자 정의 프로그램 이 등록 되 지 않 았 기 때문에 이 사용자 정의 오류 처리 프로그램 을 사용 하지 않 습 니 다.
테스트 코드 는 다음 과 같 습 니 다:
/**
*
* @param type $error_level
* @param type $error_message
* @param type $error_file
* @param type $error_line
* @param type $error_context 。 , 。
*/
function my_error($error_level, $error_message, $error_file, $error_line, $error_context) {
echo date('Y-m-d H:i:s') . $error_level . $error_message . $error_file . $error_line;
var_dump($error_context);
}
set_error_handler('my_error', E_ALL);
print_r($a);
//상기 사례 를 통 해 알 수 있 듯 이 my 를 등록 하고 있 습 니 다.error 방법 시 시스템 은 기 존의 오류 처리 error 를 자동 으로 덮어 씁 니 다.fuction()방법이상 프로그램 실행 결과:
사용자 정의 오류 트리거
정의 와 용법
trigger_error()함수 가 사용자 정의 오류 메 시 지 를 만 듭 니 다.
trigger_error()는 사용자 가 지정 한 조건 에서 오류 메 시 지 를 실행 하 는 데 사 용 됩 니 다.내 장 된 오류 프로세서 와 함께 사용 할 수도 있 고 seterror_handler()함수 가 만 든 사용자 정의 함수 사용.
합 법 적 이지 않 은 오류 형식 을 지정 하면 이 함 수 는 false 로 돌아 갑 니 다.그렇지 않 으 면 true 로 돌아 갑 니 다.
문법
trigger_error(error_message,error_types)
매개 변수
묘사 하 다.
error_message
필수잘못된 소식 을 규정 하 다.길이 제한 1024 문자
error_types
선택 할 수 있다.오류 메시지 의 오류 유형 을 규정 합 니 다. 가능 한 값:
E_USER_ERROR E_USER_WARNING E_USER_NOTICE 테스트 코드 는 다음 과 같 습 니 다:
/**
*
* @param type $level
* @param type $msg
*/
function my_error($level, $msg) {
switch ($level) {
case E_USER_ERROR:
echo "ERROR:<br/>";
break;
case E_USER_WARNING:
echo "WARNING:<br/>";
break;
case E_USER_NOTICE:
echo "NOTICE:<br/>";
break;
default:
break;
}
echo " :" . $level . " <br/>";
echo " :" . $msg;
}
//
set_error_handler('my_error');
if (89 > 8) {
//
trigger_error(' ', E_USER_WARNING);
}
실행 결 과 는 다음 과 같 습 니 다.WARNING:
오류 번호:512
오류 메시지:오류 입 니 다.
이상 에서 말 한 것 이 바로 본문의 전체 내용 이 니 여러분 들 이 좋아 하 시 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.