欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽

這篇文章主要講解了“PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽”吧!

創(chuàng)新互聯(lián)公司是一家專業(yè)提供陽谷企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為陽谷眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽

我們?cè)谌粘i_發(fā)中,遇到錯(cuò)誤是難免的,有些時(shí)候我們可以指定一個(gè)函數(shù)作為錯(cuò)誤來處理函數(shù),在PHP中就存在一個(gè)自定義錯(cuò)誤處理函數(shù)。

set_error_handler()函數(shù)自定義錯(cuò)誤處理函數(shù)

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

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

其中自定義函數(shù)名這個(gè)自定義函數(shù)的語法格式如下:

error_handler(int 錯(cuò)誤的級(jí)別 , string 錯(cuò)誤的信息 [, string 發(fā)生錯(cuò)誤的文件名 [, int 發(fā)生錯(cuò)誤的行號(hào) ]])

之前如果有過定義的錯(cuò)誤處理程序,返回的就是改程序的程序名稱;如果是內(nèi)置的錯(cuò)誤處理程序,返回的結(jié)果是NULL。若是指定了一個(gè)無效的回調(diào)函數(shù),同樣會(huì)返回NULL。

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

<?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();
?>

輸出結(jié)果:

PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽

我們?cè)谑褂么撕瘮?shù)時(shí)需要注意的是,只用這種方式來進(jìn)行錯(cuò)誤處理,若是函數(shù)沒有錯(cuò)誤的話,或者說程序沒有在錯(cuò)誤的函數(shù)中運(yùn)行,程序會(huì)繼續(xù)往下執(zhí)行發(fā)生錯(cuò)誤的函數(shù)語句,因此我們需要使用die()函數(shù)來終止函數(shù)的運(yùn)行。

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

示例如下:

<?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");
    /* 觸發(fā)異常 */
    try {
        $a = 5/0;//程序會(huì)自動(dòng)捕捉這個(gè)異常,并且由自定義函數(shù)來處理
        echo $a;
    } catch(Exception $e) {
        echo $e->getMessage();
    }
?>

輸出結(jié)果:

PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽

錯(cuò)誤屏蔽

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

  • @---錯(cuò)誤控制運(yùn)算符

在PHP中,將錯(cuò)誤控制運(yùn)算符@,放在一個(gè)表達(dá)式的前面,那這個(gè)表達(dá)式中可能存在的錯(cuò)誤都會(huì)被屏蔽掉。

其中關(guān)于@的使用,我們需要注意的是:@運(yùn)算符只有放在表達(dá)式的前面才會(huì)生效,例如變量、函數(shù)、常量等等的前面可以使用@運(yùn)算符,絕對(duì)不能放在函數(shù)的或者類的定義之前,也不能夠放在條件結(jié)構(gòu)語句的前面。

示例如下:

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

輸出結(jié)果:

PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽

在上述示例中,看得出通過@錯(cuò)誤控制運(yùn)算符,在表達(dá)式前能夠屏蔽表達(dá)式。

  • 使用 error_reporting() 函數(shù)屏蔽錯(cuò)誤

PHP 中有很多的錯(cuò)誤級(jí)別,使用 error_reporting() 函數(shù)可以設(shè)置 PHP 會(huì)報(bào)告何種錯(cuò)誤,函數(shù)的語法格式如下:

error_reporting(設(shè)置錯(cuò)誤級(jí)別)

關(guān)于錯(cuò)誤級(jí)別在上一篇文章《帶你一起了解PHP的錯(cuò)誤類型和錯(cuò)誤級(jí)別》中有更詳細(xì)的介紹,接下來我們通過示例來看一下函數(shù)的使用:

<?php
    error_reporting(0);
    $link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db") or die('數(shù)據(jù)庫連接失?。?#39;);
?>

輸出結(jié)果:

PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽

  • 通過 display_errors 參數(shù)屏蔽錯(cuò)誤

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

首先我們需要打開php.ini配置文件,然后找到display_errors,將其的值設(shè)置為Off就可以關(guān)閉所有的PHP錯(cuò)誤報(bào)告了。

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

示例如下:

PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽

由此便能夠屏蔽錯(cuò)誤了。

感謝各位的閱讀,以上就是“PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

標(biāo)題名稱:PHP中自定義錯(cuò)誤怎么處理函數(shù)與錯(cuò)誤屏蔽
文章源于:http://chinadenli.net/article42/iejdec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)品牌網(wǎng)站設(shè)計(jì)、商城網(wǎng)站、品牌網(wǎng)站制作、企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
日韩精品在线观看完整版| 99精品人妻少妇一区二区人人妻| 最新国产欧美精品91| 久草精品视频精品视频精品| 国产成人在线一区二区三区| 国产成人在线一区二区三区| 国产欧美日韩在线一区二区| 亚洲国产丝袜一区二区三区四| 亚洲日本久久国产精品久久| 欧美一二三区高清不卡| 亚洲国产精品av在线观看| 国产女高清在线看免费观看| 99国产成人免费一区二区| 国产亚洲欧美另类久久久| 老司机激情五月天在线不卡| 免费在线成人午夜视频| 欧美日韩少妇精品专区性色| 一级欧美一级欧美在线播| 久久人妻人人澡人人妻| 久久久免费精品人妻一区二区三区 | 毛片在线观看免费日韩| 午夜精品国产一区在线观看| 欧美整片精品日韩综合| 日韩欧美国产精品自拍| 国产精品白丝一区二区| 五月的丁香婷婷综合网| 日韩欧美一区二区黄色 | 暴力三级a特黄在线观看| 国内九一激情白浆发布| 亚洲国产成人爱av在线播放下载| 国产高清视频一区不卡| 国产精品视频一区二区秋霞| 在线观看国产成人av天堂野外| 国产精品成人一区二区在线| 一区二区免费视频中文乱码国产| 亚洲精品偷拍视频免费观看| 精品日韩欧美一区久久| 欧美日本道一区二区三区| 亚洲欧美日韩精品永久| 国产在线小视频你懂的| 亚洲第一香蕉视频在线|