> 백엔드 개발 > PHP 튜토리얼 > 大神帮忙看上 如何没执行小弟我的异常处理代码

大神帮忙看上 如何没执行小弟我的异常处理代码

WBOY
풀어 주다: 2016-06-13 13:06:37
원래의
1060명이 탐색했습니다.

大神帮忙看下 怎么没执行我的错误处理代码啊

PHP code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<?php //定义Error_Handler 函数
/** * 定义Error_Handler 函数
 * * * @param $error_level 错误级别
 * * @param $error_message 错误信息
 * * @param $file 错误所在文件
 * * @param $line 错误所在行数
 * * */
//屏蔽程序中的错误
error_reporting (0);
set_error_handler("error_handler");
function error_handler ($error_level, $error_message, $file, $line) {
    echo "11111111111";
}
myerror_method();
?>

로그인 후 복사


上面这段代码 调用了没定义的函数myerror_method(); 应该执行我的自定义错误处理函数error_handler()啊
奈何 echo "11111111111";这句没有执行啊,求大牛帮看下呢,跪谢!

------解决方案--------------------
你调用不存在函数,这是致命错误,直接导致脚本结束

你试试 echo $sakdfhgkjad;不存在的变量,则可正常调用自定义错误处理函数

BTW:
如果你非要在致命错误情况下,也能调用,则试试register_shutdown_function函数
------解决方案--------------------
php程序执行时有两个阶段
1、预编译阶段:完成对程序文件的语法分析,并生成中间代码
2、执行阶段:运行中间代码

set_error_handler("error_handler");
是在执行阶段执行的
所以不能处理预编译阶段的错误
------解决方案--------------------
探讨

php程序执行时有两个阶段
1、预编译阶段:完成对程序文件的语法分析,并生成中间代码
2、执行阶段:运行中间代码

set_error_handler("error_handler");
是在执行阶段执行的
所以不能处理预编译阶段的错误
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿