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

溫馨提示×

溫馨提示×

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

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

php中的錯誤處理機制

發布時間:2020-07-02 22:46:11 來源:網絡 閱讀:627 作者:韋小寶叔叔 欄目:web開發

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

 

案例1

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

 

結果

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()語法結構等同于 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.創建自定義函數處理錯誤

 

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

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

 

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

(1).創建自定義錯誤函數

函數必須有能力處理至少兩個參數(error level , error message),但是可以接受最多5個參數(可選: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中的錯誤處理機制

其中,出現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.錯誤觸發器

 

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

//傳統方法:

案例6

If($age>100)

{

  echo "too old";

  exit();

}

現在可以使用自定義錯誤觸發器

案例7

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

結果:

age:700

 

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

 

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

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

 

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

E_USER_WARNING,E_USER_ERROR,根據需求選擇。

 

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

根據需求選擇適當類型,由于案例7出現notice錯誤,所以此處,我們應該選擇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();
 }
 
?>

結果如下:

age:700

錯誤級別:1024

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

 

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

 

 

 

 


向AI問一下細節

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

AI

稷山县| 南召县| 申扎县| 永丰县| 桃园县| 洛宁县| 武安市| 慈溪市| 万全县| 台安县| 温泉县| 蒙自县| 蕲春县| 建平县| 民和| 山西省| 伊宁县| 钟祥市| 乌海市| 丹寨县| 锦州市| 南投县| 阳谷县| 岗巴县| 金寨县| 东平县| 定结县| 策勒县| 滦南县| 安庆市| 丁青县| 麻栗坡县| 满洲里市| 上饶市| 微山县| 仪征市| 随州市| 溧水县| 彰武县| 宕昌县| 鹿邑县|