真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

PHP的異常與錯(cuò)誤處理-創(chuàng)新互聯(lián)

這篇文章給大家分享的是PHP的異常與錯(cuò)誤處理。小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí)。如下資料是關(guān)于設(shè)置環(huán)境變量的內(nèi)容。

創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)遷西,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):028-86922220

異常和錯(cuò)誤

示例:

  $num = 0;
    try {
        echo 1/$num;
    } catch (Exception $e){
        echo $e->getMessage();//并不能執(zhí)行到這里
    }
    //說(shuō)明try{}catch{}是用于捕獲異常的,而錯(cuò)誤是不能捕獲到的。
 
    //手動(dòng)拋出異常進(jìn)行捕獲
    $num = 0;
    try {
        if($num == 0){
            //通過(guò)if判斷可以處理錯(cuò)誤,手動(dòng)拋出異常(如何實(shí)現(xiàn)自動(dòng)捕獲錯(cuò)誤呢,需結(jié)合三個(gè)php內(nèi)置函數(shù))
            throw new Exception('除數(shù)為零');
        }
        echo 1/$num;
    } catch (Exception $e){
        echo $e->getMessage();
    }

什么是異常

程序在運(yùn)行中出現(xiàn)不符合預(yù)期的情況,允許發(fā)生(你也不想讓他出現(xiàn)不正常的情況)但他是一種不正常的情況,按照我們的正常邏輯本不該出的錯(cuò)誤,但仍然會(huì)出現(xiàn)的錯(cuò)誤,屬于邏輯和業(yè)務(wù)流程的錯(cuò)誤,而不是編譯或者語(yǔ)法上的錯(cuò)誤。

什么是錯(cuò)誤

屬于 php 腳本自身的問(wèn)題,大部分情況是由錯(cuò)誤的語(yǔ)法,服務(wù)器環(huán)境導(dǎo)致,使得編譯器無(wú)法通過(guò)檢查,甚至無(wú)法運(yùn)行的情況。warning、notice 都是錯(cuò)誤,只是他們的級(jí)別不同而已,并且錯(cuò)誤是不能被 try-catch 捕獲的

錯(cuò)誤的分類

Fatal Error: 致命錯(cuò)誤(腳本終止運(yùn)行)

E_ERROR // 致命的運(yùn)行錯(cuò)誤,錯(cuò)誤無(wú)法恢復(fù),暫停執(zhí)行腳本

E_CORE_ERROR // PHP 啟動(dòng)時(shí)初始化過(guò)程中的致命錯(cuò)誤

E_COMPILE_ERROR // 編譯時(shí)致命性錯(cuò),就像由 Zend 腳本引擎生成了一個(gè) E_ERROR

E_USER_ERROR // 自定義錯(cuò)誤消息。像用 PHP 函數(shù) trigger_error(錯(cuò)誤類型設(shè)置為:E_USER_ERROR)

Parse Error:編譯時(shí)解析錯(cuò)誤,語(yǔ)法錯(cuò)誤(腳本終止運(yùn)行)

E_PARSE // 編譯時(shí)的語(yǔ)法解析錯(cuò)誤

Warning Error:警告錯(cuò)誤(僅給出提示信息,腳本不終止運(yùn)行)

E_WARNING // 運(yùn)行時(shí)警告 (非致命錯(cuò)誤)。

E_CORE_WARNING // PHP 初始化啟動(dòng)過(guò)程中發(fā)生的警告 (非致命錯(cuò)誤) 。

E_COMPILE_WARNING // 編譯警告

E_USER_WARNING // 用戶產(chǎn)生的警告信息

Notice Error:通知錯(cuò)誤(僅給出通知信息,腳本不終止運(yùn)行)

E_NOTICE // 運(yùn)行時(shí)通知。表示腳本遇到可能會(huì)表現(xiàn)為錯(cuò)誤的情況.

E_USER_NOTICE // 用戶產(chǎn)生的通知信息。

5 類是產(chǎn)生 ERROR 級(jí)別的錯(cuò)誤,這種錯(cuò)誤直接導(dǎo)致 PHP 程序退出。分別是 ERROR = E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_PARSE

如何實(shí)現(xiàn)捕獲錯(cuò)誤

實(shí)現(xiàn)用 try {} catch (Exception $e){} 捕獲異常的方式,來(lái)捕獲錯(cuò)誤,需借助三個(gè)函數(shù)

// 注冊(cè)一個(gè)會(huì)在php中止時(shí)執(zhí)行的函數(shù)
    register_shutdown_function('myShutdownFunction');
    function myShutdownFunction()
    {
        if ($error = error_get_last()) {
            var_dump('register_shutdown_function: Type:' . $error['type'] . ' Msg: ' . $error['message'] . ' in ' . $error['file'] . ' on line ' . $error['line'] . '');
        }
    }
//注冊(cè)異常處理函數(shù), 沒有捕獲處理的異常,將統(tǒng)一再這里處理
    set_exception_handler('myException');
    function myException($exception)
    {
        var_dump("set_exception_handler: Exception: " . $exception->getMessage()  . '');
    }

 //注冊(cè)錯(cuò)誤處理函數(shù)
    set_error_handler('myError');
    function myError($type, $message, $file, $line)
    {
        //var_dump('set_error_handler: ' . $type . ':' . $message . ' in ' . $file . ' on ' . $line . ' line .
'); throw new Exception($message); }

捕獲所有錯(cuò)誤的原理

由 set_error_handler () 可知,他能夠捕獲一部分錯(cuò)誤,不能捕獲系統(tǒng)級(jí) E_ERROR、E_PARSE 等錯(cuò)誤,但是這部分可以由 register_shutdown_function () 捕獲。所以兩者結(jié)合能出現(xiàn)很好的功能。

小結(jié)

三個(gè)函數(shù)實(shí)現(xiàn)自動(dòng)捕獲異常和錯(cuò)誤

set_error_handler () 只能夠捕獲部分錯(cuò)誤

register_shutdown_function () 結(jié)合 set_error_handler () 函數(shù),能捕獲所有錯(cuò)誤

set_exception_handler () 用于捕獲異常

error_get_last () 最后終止錯(cuò)誤信息

在捕獲錯(cuò)誤的函數(shù)中,再手動(dòng)拋出異常,即實(shí)現(xiàn) set_exception_handler 能夠捕獲錯(cuò)誤。

如果你能讀到這里,恭喜你已經(jīng)對(duì)PHP的異常與錯(cuò)誤處理有了從實(shí)踐層面最深刻的體會(huì)了。如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


文章名稱:PHP的異常與錯(cuò)誤處理-創(chuàng)新互聯(lián)
本文URL:http://weahome.cn/article/codjji.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部