我正在 PHP 中处理错误和异常句柄,并且在尝试调用不存在的方法时发现一些意外行为。
这是 PHP:
<?php
set_error_handler(function() {
echo 'error';
});
set_exception_handler(function() {
echo 'exception';
$args = func_get_args();
print_r($args);
});
$obj = new stdClass;
$obj->jdhgdfkjh();
exit(0);
这是输出:
exceptionArray
(
[0] => Error Object
(
[message:protected] => Call to undefined method stdClass::jdhgdfkjh()
[string:Error:private] =>
[code:protected] => 0
[file:protected] => /var/www/domain.com/index.php
[line:protected] => 11
[trace:Error:private] => Array
(
)
[previous:Error:private] =>
)
)
我真的不在乎尝试调用不存在的方法时是否发生错误或异常。我只是对为什么使用错误对象调用异常处理程序感到困惑。
如果有人以前遇到过这个问题,希望能得到一些澄清。
子衿沉夜