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

php中的錯誤處理機制-創(chuàng)新互聯(lián)

1.如果沒有錯誤處理機制會怎樣?

創(chuàng)新互聯(lián)公司專注于甘州企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站建設(shè)。甘州網(wǎng)站建設(shè)公司,為甘州等地區(qū)提供建站服務(wù)。全流程專業(yè)公司,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

案例1:

<?php  $fp=fopen("aa.txt","r");//打開文件,沒有驗證,是否存在該文件?  echo "ok";   ?>

結(jié)果:

Warning: fopen(aa.txt) [function.fopen]: failed to open stream: No such file or directory in E:\Software_default\wamp_wwwroot\error\error01.phpon line 2

ok

來自 <http://localhost/error/error01.php>

改進

案例2:

<?php  if(file_exists("aa.txt"))//絕對路徑  {  echo "ok";  $fp=fopen("aa.txt","r");//打開文件  fclose($fp);  }  else  {  echo "no file";  exit();  } ?>

2.簡單的die()語句

 die()語法結(jié)構(gòu)等同于exit().

 die處理錯誤三張方式:

(1).使用簡單的die()語句;

(2).使用 file_exists("aaa.txt") or die("no file");

使用die()處理以上例子

案例3:

<?php  if(file_exists("aaa.txt"))//絕對路徑  {  echo "ok";  $fp=fopen("aa.txt","r");//打開文件  fclose($fp);  }  else  {  die("no file");  } ?>

或者更簡潔的寫法

案例4:

<?php  file_exists("aaa.txt") or die("no file");   ?>

3.創(chuàng)建自定義函數(shù)處理錯誤

     在php中,如果出現(xiàn)錯誤,會啟動默認機制處理錯誤的方式來處理錯誤。如案例1,如果沒有存在aa.txt,php將提示

Warning: fopen(aa.txt) [function.fopen]: failed to open stream: No such file or directory inE:\Software_default\wamp_wwwroot\error\error01.php on line2

因此我們可以自定義錯誤方式來代替php默認錯誤機制

(1).創(chuàng)建自定義錯誤函數(shù)

函數(shù)必須有能力處理至少兩個參數(shù)(error level , error message),但是可以接受最多5個參數(shù)(可選:flie,line-number,error context)

(2).基本語法

A.error_function(error_level ,error_message,error_flie,error_line,error_context)

B.同時改寫 set_error_handle("error_function",錯誤級別),錯誤級別如下圖:

php中的錯誤處理機制

其中,出現(xiàn)warning時,不會暫停腳本運行

案例5:

<?php    function my_error($errno,$errmes)  {  echo "<strong>錯誤級別</strong>:<font color='red'>".$errno."</font><br>";  echo "<strong>錯誤信息</strong>:".$errmes;  }  set_error_handler("my_error",E_WARNING);  echo "測試打開aaa.txt<br>";  $fp=fopen("aaa.txt","r");//打開文件 ?>

4.錯誤觸發(fā)器

     需求:有一段代碼,如果input接受一個年齡,假如年齡大于100,我認為是一個錯誤。

//傳統(tǒng)方法:

案例6:

If($age>100)

{

 echo "too old";

 exit();

}

現(xiàn)在可以使用自定義錯誤觸發(fā)器

案例7:

<?php  $age=700;  echo "age:".$age."<br>";    if($age>100)  {  trigger_error("年齡太大");  exit();  } ?>

結(jié)果:

age:700

Notice: 年齡太大 in E:\Software_default\wamp_wwwroot\error\error05.phpon line 7

來自 <http://localhost/error/error05.php>

從案例7,我們可以發(fā)現(xiàn),使用了trigger_error(),相當(dāng)于觸發(fā)了一個錯誤,從而調(diào)用php默認錯誤提示機制,因此,在此情況下,還可以進行改寫錯誤函數(shù),即自定義錯誤函數(shù)。

其中,trigger_error()里有兩個參數(shù),trigger_error("error_msg",error_type),默認為E_USER_NOTICE,可選有:

E_USER_WARNING,E_USER_ERROR,根據(jù)需求選擇。

注意:此處的錯誤級別通常為:E_USER_WARNING,E_USER_NOTICE,E_USER_ERROR

根據(jù)需求選擇適當(dāng)類型,由于案例7出現(xiàn)notice錯誤,所以此處,我們應(yīng)該選擇E_USER_NOTICE。

案例8:

<?php   function age_error($erroro,$erromes)   {    echo "<strong>錯誤級別</strong>:<font color='red'>".$erroro."</font><br>";    echo "<strong>錯誤信息</strong>:".$erromes;   }  set_error_handler("age_error",E_USER_NOTICE);//錯誤級別通常為:E_USER_WARNING,E_USER_NOTICE,E_USER_ERROR    $age=700;  echo "age:".$age."<br>";    if($age>100)  {  trigger_error("年齡太大,大于120");//默認是E_USER_NOTICE  exit();  }   ?>

結(jié)果如下:

age:700

錯誤級別:1024

錯誤信息:年齡太大,大于120

來自 <http://localhost/error/error06.php>

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

文章題目:php中的錯誤處理機制-創(chuàng)新互聯(lián)
鏈接URL:http://chinadenli.net/article26/dhsdjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號搜索引擎優(yōu)化手機網(wǎng)站建設(shè)域名注冊營銷型網(wǎng)站建設(shè)Google

廣告

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

成都網(wǎng)頁設(shè)計公司