PHP捕捉異常中斷的方法
前言
任何程序員在開發(fā)時都可能遇到過一些失誤,或其他原因造成錯誤的發(fā)生。當(dāng)然,用戶如果不愿意或不遵循應(yīng)用程序的約束,也會在使用時引起一些錯誤發(fā)生。本文主要介紹在php中用 register_shutdown_function進行異常處理的方法,有需要的可以一起學(xué)習(xí)學(xué)習(xí)。
實例詳解
比如判斷一個腳本是否執(zhí)行完成,可以設(shè)置一個屬性為 false,在執(zhí)行完成時設(shè)為 true,最后通過 register_shutdown_function 函數(shù)指定的方法進行判斷,并做進一步異常處理,如代碼所示:
class IndexController extends Controller
{
/**
* 腳本執(zhí)行是否完成
* @var bool
*/
protected $complete = false;
public function __construct()
{
register_shutdown_function([$this, 'shutdown']);
}
/**
* 異常處理
*/
public function shutdown()
{
if ($this->complete === false) {
dump('www.tanteng.me'); //此處應(yīng)該輸出日志并進行異常處理操作
}
}
}
這樣一來,可以快速定位腳本是否中斷,通過 register_shutdown_function 處理異常并提高程序的健壯性,并且可以記錄程序中斷的狀態(tài),方便通過日志快速定位問題。
register_shutdown_function 執(zhí)行機制
PHP 把要調(diào)用的函數(shù)調(diào)入內(nèi)存。當(dāng)頁面所有 PHP 語句都執(zhí)行完成時,再調(diào)用此函數(shù)。注意,在這個時候從內(nèi)存中調(diào)用,不是從 PHP 頁面中調(diào)用,所以如果有路徑信息,應(yīng)使用絕對路徑,因為 PHP 已經(jīng)當(dāng)原來的頁面不存在了。就沒有什么相對路徑可言。
可以這樣理解調(diào)用條件:
1、當(dāng)頁面被用戶強制停止時
2、當(dāng)程序代碼運行超時時
3、當(dāng)PHP代碼執(zhí)行完成時
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者使用PHP能有所幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
- PHP異常Parse error: syntax error, unexpected T_VAR錯誤解決方法
- php中try catch捕獲異常實例詳解
- PHP的異常處理類Exception的使用及說明
- php Try Catch異常測試
- PHP如何拋出異常處理錯誤
- PHP中的錯誤處理、異常處理機制分析
- php中異常處理方法小結(jié)
- php異常:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE eval()''d code error
- php更新mysql后獲取影響的行數(shù)發(fā)生異常解決方法
- PHP 的異常處理、錯誤的拋出及回調(diào)函數(shù)等面向?qū)ο蟮腻e誤處理方法
相關(guān)文章
關(guān)于Ext中form移除textfield方法:hide(),setVisible(false),remove()
根據(jù)條件來控制是否顯示form里的textfield表單2010-12-12
使用weixin-java-miniapp配置進行單個小程序的配置詳解
這篇文章主要介紹了使用weixin-java-miniapp配置進行單個小程序的配置詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03
用JavaScript實現(xiàn)PHP的urlencode與urldecode函數(shù)
這篇文章主要介紹了用JavaScript實現(xiàn)PHP的urlencode與urldecode函數(shù),很多情況下我們用了出來php urlencode出來的網(wǎng)址,需要的朋友可以參考下2015-08-08
js獲取下拉列表框<option>中的value和text的值示例代碼
本篇文章主要是對js獲取下拉列表框<option>中的value和text的值示例代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-01-01
Ajax高級筆記 JavaScript高級程序設(shè)計筆記
這篇文章主要介紹了Ajax高級筆記 JavaScript高級程序設(shè)計筆記,需要的朋友可以參考下2017-06-06

