PHP捕捉错误的方法

不言
Lepaskan: 2023-04-02 20:20:01
asal
2345 orang telah melayarinya

这篇文章主要介绍了关于PHP捕捉错误的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

PHP捕捉错误

  • 禁止错误输出

error_reporting(0);
Salin selepas log masuk
  • 设置错误处理器

set_error_handler('errorHandler');
Salin selepas log masuk
  • 在脚本结束时运行的函数

register_shutdown_function('fatalErrorHandler');
Salin selepas log masuk
  • 错误处理

/**
 * @param int    $err_no      错误代码
 * @param string $err_msg  错误信息
 * @param string $err_file    错误文件
 * @param int    $err_line     错误行号
 * @return string
 */
function errorHandler($err_no = 0, $err_msg = '', $err_file = '', $err_line = 0)
{
    $log = [
        '['.date('Y-m-d h-i-s').']',
        '|',
        $err_no,
        '|',
        $err_msg,
        '|',
        $err_file,
        '|',
        $err_line
    ];
    $log_path = './test.txt';
    error_log(implode(' ',$log)."\r\n",3, $log_path);
}
Salin selepas log masuk
  • 捕捉致命错误

function fatalErrorHandler() {
    $e = error_get_last();

    var_export($e);
    switch ($e['type']) {
        case 1:
            errorHandler($e['type'], $e['message'], $e['file'], $e['line']);
            break;
    }
}
Salin selepas log masuk
class DemoClass_1
{
    public function index()
    {
        //这里发生一个警告错误,出发errorHandler
        echo $undefinedVarible;
    }
}
Salin selepas log masuk
  • 这里发生一个警告错误,被errorHandler 捕获

$demo_1 = new DemoClass_1();
$demo_1->index();
Salin selepas log masuk
  • 发生致命错误,脚本停止运行触发 fatalErrorHandler

$demo_2 = new DemoClass_2();
$demo_2->index();
Salin selepas log masuk

打开test.txt后 输出:

[2018-06-12 05-49-11] | 8 | Undefined variable: undefinedVarible | /Users/darry/htdocs/test.php | 57
[2018-06-12 05-49-11] | 1 | Uncaught Error: Class 'DemoClass_2' not found in /Users/darry/htdocs/test.php:67
Stack trace:
#0 {main}
  thrown | /Users/darry/htdocs/test.php | 67
Salin selepas log masuk

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

Nginx SSL快速双向认证配置(脚本)

PHP数据结构基础之递归

关于thinkphp行为的使用

Atas ialah kandungan terperinci PHP捕捉错误的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!