>  기사  >  백엔드 개발  >  사용자 정의된 PHP 오류 잡기 코드,register_shutdown_function(), set_error_handler(

사용자 정의된 PHP 오류 잡기 코드,register_shutdown_function(), set_error_handler(

WBOY
WBOY원래의
2016-07-25 08:45:571609검색
自定义 php 错误捕获代码, register_shutdown_function(), set_error_handler()
  1. /**
  2. * @Author: yangyulong
  3. * @Date: 2015-12-28 22:09:22
  4. * @Last Modified by: yangyulong
  5. * @Last Modified time: 2015-12-28 22:48:49
  6. */
  7. error_reporting(0);
  8. //注册错误捕捉函数
  9. register_shutdown_function('jd_fatal_error');
  10. //注册错误处理函数
  11. set_error_handler('jd_error_handler');
  12. function jd_fatal_error(){
  13. if ($e = error_get_last()) {
  14. switch ($e['type']) {
  15. case E_ERROR:
  16. case E_PARSE:
  17. case E_CORE_ERROR:
  18. case E_COMPILE_ERROR:
  19. case E_USER_ERROR:
  20. //所有测错误类型都用下面的函数同意捕获
  21. jd_error_handler($e['type'], $e['message'], $e['file'], $e['line']);
  22. break;
  23. }
  24. }
  25. }
  26. /**
  27. * 捕获错误的函数
  28. *
  29. * @method jd_error_handler
  30. *
  31. * @param [type] $type [description]
  32. * @param [type] $message [description]
  33. * @param [type] $file [description]
  34. * @param [type] $line [description]
  35. *
  36. * @return [type] [description]
  37. */
  38. function jd_error_handler($type, $message, $file, $line){
  39. echo ''.$type.':'.$message.' in '.$file.' on '.$line. ' line .
    ';
  40. }
  41. print_r(xx());
  42. // print_r(debug_backtrace());
  43. // print_r(debug_print_backtrace());
复制代码
커스텀, php, 등록


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