>  기사  >  백엔드 개발  >  PHP 예외 및 오류 처리 메커니즘

PHP 예외 및 오류 처리 메커니즘

WBOY
WBOY원래의
2016-08-08 09:19:30815검색

php 예외 및 오류 처리 메커니즘


실제 개발에서는 오류 및 예외 잡기 try{}catch()만으로는 충분하지 않습니다. 따라서 다음 기능을 인용하십시오.

먼저 예외에 대해 이야기해 보겠습니다.

우선 예외는 일반적인 논리를 벗어난 상황인 반면 오류는 런타임 중 오류를 의미한다는 점을 먼저 이해해야 합니다. , 정의되지 않은 변수가 사용되는 등. 예외를 발생시켜야 포착할 수 있으며, 오류로 인해 프로그램 실행이 종료됩니다.

1. 예외를 처리하는 일반적인 방법은 try{}catch를 사용하는 것입니다. {} throw

[php] 보기로 발생한 예외 잡기 일반 사본

  1. 시도{
  2. 던지기 new예외("ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ") 🎜>catch(예외 $e
  3. ){
  4.  에코 $e
  5. ->getMessage(), "
    "
    ,$e->getTraceAsString() }
  6. 2. set_Exception_handler 함수를 통해 예외 처리를 설정합니다. 이 경우 try{}catch{}가 없더라도 throw에 의해 발생하는 예외는 다음과 같습니다. set_Exception_handler
  7. 에 의해 설정된 함수에 의해 자동으로 포착됩니다.[php] 보기 일반 사본

set_Exception_handler(

'예외 처리기'

)
  1. throw new
  2. Exception("kkkkkkkkkkkkkk"); 함수 예외 처리기(예외 $Exception){
  3. 에코
  4. $Exception->getMessage()
  5. } 다음 오류에 대해 논의해 보겠습니다.
  6. 보통 프로그램이 잘못되면 PHP는 디버깅을 돕기 위해 오류 정보를 출력하지만 이 정보의 출력은 error_reporting() 함수를 통해 제어할 수 있습니다. PHP의 오류는 수준과 유형으로 구분됩니다. 다음은 모든 오류 유형에 대한 설명입니다.
  7. E_ALL - 모든 오류 및 경고(E_STRICT 제외) E_ERROR - 치명적인 런타임 오류 E_WARNING - 런타임 경고(비 -치명적인 오류)
  8. 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] 보기 일반 사본

  1. set_error_handler('errorHandler');  
  2. trigger_error("aaaaaassssssssssss",E_USER_ERROR);  
  3. 함수 errorHandler($errno,$errstr ){  
  4. "white-space:pre">  if($errno==E_USER_ERROR){  
  5. "white-space:pre">      에코 "innnnnnnni:",$errstr;  
  6. "white-space:pre">  }  
  7. "white-space:pre">    
  8. }  
输出结果:

[php] 보기 일반 사본

  1. innnnnnnni:aaaaaaasssssssssss  

trigger_error()就是사용来抛출용户自정의错误消息的函数,个过这个我们能抛出自定义ative 一些消息被当work错误来处,比如严的逻辑问题

상면 당신이 좋아하는 것 Php默认输가 출력한 내용은 우리가 제공하는 것보다 더 나은 것입니다. >

[ php] 보기 일반 사본

    set_error_handler(
  1. 'errorHandler');  
  2. 에코
  3.  "dddddddddd
    ";  
  4. 에코
  5.  $cc;//$cc没有정义,echo会출错  
  6. function
  7.  errorHandler($errno ,$errstr){      
  8. if
  9. ($errno==E_NOTICE){          
  10. 에코
  11.  "innnnnnnni:" ,$errstr;      }  
  12. }  
输出结果:
ddddddddddddinnnnnnnni:정의되지 않은 변수: cc



以上就介绍了php异常, 错误处理机system, 包括了方face的内容,希望对PHP教程有兴趣的朋友有所帮助。

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