我在Ajax通话期间处理了一些PHP错误,并在Chrome控制台中收到以下消息:
An uncaught Exception was encountered
Type: Error
Message: Call to undefined function data()
Filename: /var/www/application/models/M_ajax.php
Line Number: 604
Backtrace:
File: /var/www/application/controllers/Global_fxns.php
Line: 47
Function: _4___signIn
File: /var/www/html/index.php
Line: 349
Function: require_once
问题是,它在try / catch块中。并且应该捕获PHP错误。例如,如果我在try块
中执行此代码strlen();
代码按照您的预期捕获,因为strlen需要一个参数。但是没有发现这个错误。触发错误的代码行是
if(!$ this-> M_account-> addUserTrafficEvent($ userId,data(' Ymd> H:i:s'),2.1,'') ){
这是一个错误,因为我打算键入' date'而不是数据'使用PHP的日期功能,因为'数据'它不是一个创建错误的函数。为什么没有发现这个错误?使用PHP函数和用户定义的函数创建的错误之间是否存在某种差异,如果是这样,它是否应该被捕获?它会在所有
之后生成PHP错误消息由于
答案 0 :(得分:0)
从PHP 7开始,您可以使用 catch(错误$ err)。
<?php
try {
data('Y-m-d >H:i:s');
} catch (Exception $exc) {
echo'Fatal exception catched: '.$exc->getMessage();
} catch (Error $err) {
echo 'Fatal error catched: '.$err->getMessage();
}
?>