PHP捕捉異常中斷的方法,PHP捕捉中斷方法

來源:互聯網
上載者:User

PHP捕捉異常中斷的方法,PHP捕捉中斷方法

前言

任何程式員在開發時都可能遇到過一些失誤,或其他原因造成錯誤的發生。當然,使用者如果不願意或不遵循應用程式的約束,也會在使用時引起一些錯誤發生。本文主要介紹在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、當頁面被使用者強制停止時

      2、當程式碼運行逾時時

      3、當PHP代碼執行完成時

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家學習或者使用PHP能有所協助,如果有疑問大家可以留言交流,謝謝大家對幫客之家的支援。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.