PHP 捕获行号?

标签 php error-handling

我正在我的应用程序中构建一个基本的错误日志记录功能,我只记录一条自定义消息,如“产品 ID 丢失”,并将其记录在数据库中。有什么方法可以动态捕获从哪个类或函数触发错误(即调用 log_error() 的函数)或行号?

最佳答案

从 PHP 5.2.0 开始,有 error_get_last() . (干杯@Gordon)它会给你一个数组,其中包含关于最后一个错误的所有信息:

Array
(
    [type] => 8
    [message] => Undefined variable: a
    [file] => C:\WWW\index.php
    [line] => 2
)

通常更灵活的处理错误的方法是定义一个 custom error handler .

自定义错误处理程序接受以下参数:

handler  ( int $errno, string $errstr  [, string $errfile
           [, int $errline  [, array $errcontext  ]]] )

回溯 您将通过回溯获得的最多信息 - 在许多情况下很有用。为此,将错误处理程序与 debug_backtrace() 结合使用.它将为您提供一个数组,其中包含调用堆栈中的每个点(即哪个函数调用哪个调用哪个调用哪个......直到错误。)

堆栈跟踪会占用大量计算时间,因此您不应该在生产中使用它们并且应该有一个开关来打开和关闭它们。

关于PHP 捕获行号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2346990/

相关文章:

php - 对象存在但试图获取非对象的属性

javascript - JSON.Parse 不处理非法字符

javascript - 找不到Java错误的原因和解决方案

php - 使最近的项目更有可能被绘制

php - 最快的 PHP 内存缓存/哈希表

php - 如何在 PHPUnit 中以编程方式对测试函数进行排序?

r - R中的tryCatch block ,返回变量

python - Mechanize 时不时地随机出错?

bash - Bash Jobs : how can I output job process information along with errors?

php - 使用 Paypal REST api 发送发票时,客户收不到电子邮件