PHP捕捉異常中斷的方法

高洛峰
發布: 2023-03-03 13:00:01
原創
1237 人瀏覽過

前言

任何程式設計師在開發時都可能遇到一些失誤,或其他原因造成錯誤的發生。當然,使用者如果不願意或不遵循應用程式的約束,也會在使用時造成一些錯誤發生。本文主要介紹在php中以 register_shutdown_function進行異常處理的方法,有需要的可以一起學習學習。

實例詳解

例如判斷一個腳本是否執行完成,可以設定一個屬性為 false,在執行完成時設為 true,最後透過 register_shutdown_function 函數指定的方法進行判斷,並做進一步異常處理,如程式碼所示:

class IndexController extends Controller
{
  /**
   * 脚本执行是否完成
   * @var bool
   */
  protected $complete = false;
  
  public function __construct()
  {
    register_shutdown_function([$this, 'shutdown']);
  }
  
  /**
   * 异常处理
   */
  public function shutdown()
  {
    if ($this->complete === false) {
      dump('www.tanteng.me'); //此处应该输出日志并进行异常处理操作
    }
  }
}
登入後複製

   

這樣一來,可以快速定位腳本是否中斷,透過 register_shutdown_function 處理異常並提高程式的健全性,並且可以記錄程式中斷的狀態,方便透過日誌快速定位問題。

register_shutdown_function 執行機制

PHP 把要呼叫的函數調入記憶體。當頁面所有 PHP 語句都執行完成時,再呼叫此函數。請注意,在這個時候從內存中調用,不是從 PHP 頁面中調用,所以如果有路徑信息,應使用絕對路徑,因為 PHP 已經當原來的頁面不存在了。就沒有什麼相對路徑可言。

可以這樣理解呼叫條件:

      1、當頁面被使用者強制停止時

     

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!