php 예외 및 오류 처리 메커니즘
실제 개발에서는 오류 및 예외 잡기 try{}catch()만으로는 충분하지 않습니다. 따라서 다음 기능을 인용하십시오.
먼저 예외에 대해 이야기해 보겠습니다.
우선 예외는 일반적인 논리를 벗어난 상황인 반면 오류는 런타임 중 오류를 의미한다는 점을 먼저 이해해야 합니다. , 정의되지 않은 변수가 사용되는 등. 예외를 발생시켜야 포착할 수 있으며, 오류로 인해 프로그램 실행이 종료됩니다.
1. 예외를 처리하는 일반적인 방법은 try{}catch를 사용하는 것입니다. {} throw
[php] 보기로 발생한 예외 잡기
일반 사본
- 시도{
-
던지기 new예외("ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ") 🎜>catch(예외 $e
- ){
-
에코 $e
- ->getMessage(), "",$e->getTraceAsString() }
2. set_Exception_handler 함수를 통해 예외 처리를 설정합니다. 이 경우 try{}catch{}가 없더라도 throw에 의해 발생하는 예외는 다음과 같습니다. set_Exception_handler 에 의해 설정된 함수에 의해 자동으로 포착됩니다.[php] 보기
일반 사본
set_Exception_handler(
'예외 처리기'
)
-
throw new
- Exception("kkkkkkkkkkkkkk"); 함수 예외 처리기(예외 $Exception){
-
에코
- $Exception->getMessage()
- } 다음 오류에 대해 논의해 보겠습니다.
보통 프로그램이 잘못되면 PHP는 디버깅을 돕기 위해 오류 정보를 출력하지만 이 정보의 출력은 error_reporting() 함수를 통해 제어할 수 있습니다. PHP의 오류는 수준과 유형으로 구분됩니다. 다음은 모든 오류 유형에 대한 설명입니다. - E_ALL - 모든 오류 및 경고(E_STRICT 제외) E_ERROR - 치명적인 런타임 오류 E_WARNING - 런타임 경고(비 -치명적인 오류)
E_PARSE - 컴파일 시간 구문 분석 오류
E_NOTICE - 런타임 알림(종종 코드의 버그로 인해 발생하거나 의도적인 동작으로 인해 발생할 수 있음) E_STRICT - 인코딩 표준화 경고, 최적의 상호 운용성과 향후 호환성을 보장하기 위해 PHP가 코드 수정 방법을 권장하도록 허용합니다.
E_CORE_ERROR - PHP 시작 초기화 중 치명적인 오류 E_CORE_WARNING - PHP 시작 초기화 중 경고(치명적이지 않은 오류)
E_COMPILE_ERROR - 컴파일 시간 중 치명적인 오류 E_COMPILE_WARNING - 컴파일 시간 경고(치명적이지 않은 오류) )
E_USER_ERROR - 사용자 정의 오류 메시지
E_USER_WARNING - 사용자 정의 경고 메시지
E_USER_NOTICE - 사용자 정의 알림 메시지
error_reporting(E_NOTICE)이 설정된 경우 프로그램은 E_NOTICE 수준 정보만 출력합니다. 일반적으로 이를 사용할 때는 error_reporting(E_ALL&!E_WARNING)만 설정하면 됩니다.
위에서는
사용자 정의 오류 메시지
라는 오류를 보았습니다. 이게 뭔가요? 먼저 예시를 살펴보겠습니다
[php] 보기
일반 사본
- set_error_handler('errorHandler');
- trigger_error("aaaaaassssssssssss",E_USER_ERROR);
- 함수 errorHandler($errno,$errstr ){
-
"white-space:pre"> if($errno==E_USER_ERROR){
- "white-space:pre"> 에코 "innnnnnnni:",$errstr;
-
"white-space:pre"> }
- "white-space:pre"> 스팬>
- }
输出结果:
[php] 보기
일반 사본
- innnnnnnni:aaaaaaasssssssssss
trigger_error()就是사용来抛출용户自정의错误消息的函数,个过这个我们能抛出自定义ative 一些消息被当work错误来处,比如严的逻辑问题
상면 당신이 좋아하는 것 Php默认输가 출력한 내용은 우리가 제공하는 것보다 더 나은 것입니다. >
[ php] 보기
일반 사본
set_error_handler(- 'errorHandler');
에코- "dddddddddd";
에코- $cc;//$cc没有정义,echo会출错
function-
errorHandler($errno ,$errstr){
if-
($errno==E_NOTICE){
에코-
"innnnnnnni:" ,$errstr; }
-
}
输出结果:
ddddddddddddinnnnnnnni:정의되지 않은 변수: cc
以上就介绍了php异常, 错误处理机system, 包括了方face的内容,希望对PHP教程有兴趣的朋友有所帮助。