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

溫馨提示×

溫馨提示×

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

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

PHP中自定義錯誤怎么處理函數與錯誤屏蔽

發布時間:2021-10-22 10:06:43 來源:億速云 閱讀:109 作者:iii 欄目:編程語言

這篇文章主要講解了“PHP中自定義錯誤怎么處理函數與錯誤屏蔽”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PHP中自定義錯誤怎么處理函數與錯誤屏蔽”吧!

PHP中自定義錯誤怎么處理函數與錯誤屏蔽

我們在日常開發中,遇到錯誤是難免的,有些時候我們可以指定一個函數作為錯誤來處理函數,在PHP中就存在一個自定義錯誤處理函數。

set_error_handler() 函數自定義錯誤處理函數

PHP中提供了set_error_handler()函數就是用來指定一個函數作為錯誤處理函數,它的語法格式如下:

set_error_handler(自定義函數名 [, int $error_types = E_ALL | E_STRICT ])

其中自定義函數名這個自定義函數的語法格式如下:

error_handler(int 錯誤的級別 , string 錯誤的信息 [, string 發生錯誤的文件名 [, int 發生錯誤的行號 ]])

之前如果有過定義的錯誤處理程序,返回的就是改程序的程序名稱;如果是內置的錯誤處理程序,返回的結果是NULL。若是指定了一個無效的回調函數,同樣會返回NULL。

接下來我們通過示例來看一下,自定義一個錯誤處理函數,并使用它來處理程序中的錯誤,示例如下:

<?php
    function error_handler($errno, $errstr, $errfile, $errline ) {
        echo "error number:".$errno."<br/>";
        echo "error msg:".$errstr."<br/>";
        echo "error file:".$errfile."<br/>";
        echo "error line:".$errline."<br/>";
        die('something error');
    }
    set_error_handler("error_handler");
    strpos();
?>

輸出結果:

PHP中自定義錯誤怎么處理函數與錯誤屏蔽

我們在使用此函數時需要注意的是,只用這種方式來進行錯誤處理,若是函數沒有錯誤的話,或者說程序沒有在錯誤的函數中運行,程序會繼續往下執行發生錯誤的函數語句,因此我們需要使用die()函數來終止函數的運行。

在我們的日常開發中,程序中的異常無法自動拋出來,這時候我們也可以使用set_error_handler() 自定義,將異常當作錯誤來處理,這樣我們就可以使用自定義錯誤處理來自動捕捉異常。

示例如下:

<?php
    function error_handler($errno, $errstr, $errfile, $errline ) {
        echo "error number:".$errno."<br/>";
        echo "error msg:".$errstr."<br/>";
        echo "error file:".$errfile."<br/>";
        echo "error line:".$errline."<br/>";
        die('something error');
    }
    set_error_handler("error_handler");
    /* 觸發異常 */
    try {
        $a = 5/0;//程序會自動捕捉這個異常,并且由自定義函數來處理
        echo $a;
    } catch(Exception $e) {
        echo $e->getMessage();
    }
?>

輸出結果:

PHP中自定義錯誤怎么處理函數與錯誤屏蔽

錯誤屏蔽

在PHP開發過程中,我們不僅可以通過set_error_handler()自定義錯誤處理函數來處理錯誤,我們還能夠把錯誤屏蔽掉,在有些情況下,錯誤屏蔽也是必不可少的。那接下來給大家列舉一些用于錯誤屏蔽的方法。

  • @---錯誤控制運算符

在PHP中,將錯誤控制運算符@,放在一個表達式的前面,那這個表達式中可能存在的錯誤都會被屏蔽掉。

其中關于@的使用,我們需要注意的是:@運算符只有放在表達式的前面才會生效,例如變量、函數、常量等等的前面可以使用@運算符,絕對不能放在函數的或者類的定義之前,也不能夠放在條件結構語句的前面。

示例如下:

<?php
    $link = @mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die('數據庫連接失敗!');
?>

輸出結果:

PHP中自定義錯誤怎么處理函數與錯誤屏蔽

在上述示例中,看得出通過@錯誤控制運算符,在表達式前能夠屏蔽表達式。

  • 使用 error_reporting() 函數屏蔽錯誤

PHP 中有很多的錯誤級別,使用 error_reporting() 函數可以設置 PHP 會報告何種錯誤,函數的語法格式如下:

error_reporting(設置錯誤級別)

關于錯誤級別在上一篇文章《帶你一起了解PHP的錯誤類型和錯誤級別》中有更詳細的介紹,接下來我們通過示例來看一下函數的使用:

<?php
    error_reporting(0);
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die('數據庫連接失敗!');
?>

輸出結果:

PHP中自定義錯誤怎么處理函數與錯誤屏蔽

  • 通過 display_errors 參數屏蔽錯誤

這種方法時最徹底的一種方法,前面兩種方法只作用于單行或者單個文件,但是通過display_errors 參數屏蔽錯誤是作用在所有的PHP文件,那我們一起來看一下應該怎么操作吧。

首先我們需要打開php.ini配置文件,然后找到display_errors,將其的值設置為Off就可以關閉所有的PHP錯誤報告了。

(在之前的文章《PHP如何上傳文件?看完就明白了!》中介紹了怎樣去php,ini配置文件的相關知識)

示例如下:

PHP中自定義錯誤怎么處理函數與錯誤屏蔽

由此便能夠屏蔽錯誤了。

感謝各位的閱讀,以上就是“PHP中自定義錯誤怎么處理函數與錯誤屏蔽”的內容了,經過本文的學習后,相信大家對PHP中自定義錯誤怎么處理函數與錯誤屏蔽這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

php
AI

南京市| 同心县| 吉木萨尔县| 曲阜市| 肃宁县| 镇雄县| 福州市| 土默特右旗| 承德县| 和顺县| 鞍山市| 松滋市| 南部县| 襄城县| 道孚县| 木里| 迭部县| 大理市| 大名县| 诸城市| 新疆| 庆安县| 沂水县| 怀来县| 游戏| 乐清市| 祁门县| 泰州市| 阿城市| 如东县| 泽库县| 衡东县| 耒阳市| 卓资县| 甘孜| 榕江县| 浦江县| 油尖旺区| 奉新县| 牡丹江市| 望谟县|