91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么捕獲php致命錯誤

發布時間:2020-08-07 09:33:27 來源:億速云 閱讀:127 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關怎么捕獲php致命錯誤,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

php捕獲致命錯誤的方法:可以利用register_shutdown_function()函數來捕獲致命錯誤。register_shutdown_function()函數表示PHP在程序結束時觸發某個函數行為。

利用register_shutdown_function()函數來捕獲致命錯誤,該函數表示 PHP 在程序結束時觸發某個函數行為。

語法:

void register_shutdown_function(callable $callback[, mixed $parameter [, mixed $... ]])

注冊一個 callback ,它會在腳本執行完成或者 exit() 后被調用。

參數:

  • callback:待注冊的中止回調

  • parameter:可以通過傳入額外的參數來將參數傳給中止函數

程序結束有四種情況:

  • php代碼執行過程中發生錯誤

  • php代碼順利執行成功

  • php代碼運行超時

  • 頁面被用戶強制停止

舉例:

我們自定義一個行為:

<?php
/**
 * Created by PhpStorm.
 * User: Xavier
 * Date: 2018/6/3
 * Time: 12:16
 */
class RegisterShutDownFunction
{
    /**
     * @author Xavier
     * @desc php 程序運行結束時候需要運行的函數
     */
    public static function register()
    {
        if ($error = error_get_last()) {
            // $filename 必須是一個絕對路徑
            if (!defined('REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME')) {
                $filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'register_shutdown_function.log';
            } else {
                $filename = REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME;
            }
            $message = '時間 : ' . date('Y-m-d H:i:s') . PHP_EOL;
            $message .= '文件 : ' . $error['file'] . PHP_EOL;
            $message .= '行數 : ' . $error['line'] . PHP_EOL;
            $message .= '錯誤 : ' . $error['message'] . PHP_EOL;
            $message .= '類型 : ' . $error['type'] . PHP_EOL . PHP_EOL;
            file_put_contents($filename, $message, FILE_APPEND);
        }
    }
}

應用:

<?php
/**
 * Created by PhpStorm.
 * User: Xavier
 * Date: 2018/6/3
 * Time: 12:27
 */
 // 定義一個常量來記錄程序停止后,出現錯誤的 LOG 日志文件
define('REGISTER_SHUTDOWN_FUNCTION_LOG_FILENAME', dirname(__FILE__) . DIRECTORY_SEPARATOR . '11.log');
// 包含異常處理的類文件
include 'lib/RegisterShutDownFunction.php';
$registerShutDownFunction = new RegisterShutDownFunction();
// register_shutdown_function 函數必須在所有的程序執行之間注冊
register_shutdown_function(array($registerShutDownFunction, 'register'));

// 注冊成功之后調用一個不存在的方法 aa();
aa();

錯誤日志:

時間 : 2018-06-03 04:56:02
文件 : /Users/x/www/php/exception/2.php
行數 : 17
錯誤 : Uncaught Error: Call to undefined function aa() in /Users/x/www/php/exception/2.php:17
Stack trace:
#0 {main}
  thrown
類型 : 1

關于怎么捕獲php致命錯誤就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新巴尔虎左旗| 会宁县| 温州市| 皮山县| 宜川县| 云梦县| 浙江省| 布尔津县| 双峰县| 班戈县| 崇仁县| 襄垣县| 惠来县| 敖汉旗| 凤翔县| 庐江县| 和硕县| 阿城市| 恩平市| 巴楚县| 金塔县| 北碚区| 华亭县| 昆明市| 三原县| 荔浦县| 鹰潭市| 义乌市| 稷山县| 牟定县| 瑞昌市| 古交市| 云龙县| 枣庄市| 锡林郭勒盟| 嵊州市| 两当县| 将乐县| 长宁县| 卢湾区| 孟州市|