麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > PHP > 正文

利用PHP自定義錯(cuò)誤處理器處理出錯(cuò)信息

2024-05-04 21:47:17
字體:
供稿:網(wǎng)友

假如您是PHP老手,當(dāng)然知道當(dāng)PHP腳本出錯(cuò)時(shí)發(fā)生了什么事情。此時(shí)PHP解析器將在屏幕上給出錯(cuò)誤信息,如 Fatal error: Call to undefined function on line 19 --,因此程序在此處終止。這個(gè)信息會(huì)嚇到客戶,他可能立即打電話和你進(jìn)行咨詢。

幸運(yùn)的是,這里有解決辦法。PHP擁有內(nèi)置工具,可以讓開發(fā)人員捕捉腳本錯(cuò)誤然后將它們轉(zhuǎn)到自定義的錯(cuò)誤處理器。此時(shí)則可以對(duì)處理器進(jìn)行編程顯示更多關(guān)于錯(cuò)誤的具體信息。還可以將錯(cuò)誤寫入文件或數(shù)據(jù)庫以采取補(bǔ)救措施。有時(shí)候還可以對(duì)處理器編寫程序忽略錯(cuò)誤消息。

本文中,我將闡述如何使用PHP的錯(cuò)誤處理API構(gòu)建用戶自定義的錯(cuò)誤處理器,并且說明如何以簡(jiǎn)單而友好的方式顯示和治理腳本的錯(cuò)誤信息。

錯(cuò)誤類型和報(bào)告級(jí)別

我們從最基本的開始。PHP有三種最基本的錯(cuò)誤類型,從低級(jí)到高級(jí)分別為:注重、警告和錯(cuò)誤(或致命錯(cuò)誤)。通常情況下,注重和警告不會(huì)終止程序;但是致命錯(cuò)誤則是危險(xiǎn)故障(例如,調(diào)用一個(gè)沒有定義的函數(shù)或參考一個(gè)不存在的對(duì)象),將導(dǎo)致程序中斷。這些錯(cuò)誤有可能在啟動(dòng)、解析、編譯或運(yùn)行時(shí)發(fā)生。

要害字如E_NOTICE, E_ERROR等用于表明錯(cuò)誤的不同類型和等級(jí)。在PHP手冊(cè)上可以獲得它們的具體信息列表。

腳本階段錯(cuò)誤顯示由error_reporting()函數(shù)進(jìn)行控制。這一函數(shù)針對(duì)不同的錯(cuò)誤等級(jí)設(shè)置不同的參數(shù)。表A給出了使用此函數(shù)報(bào)告警告和致命錯(cuò)誤的腳本程序。

表A

  1. <?php 
  2. // display warnings and errors 
  3. error_reporting(E_WARNING | E_ERROR); 
  4. // this will generate a notice, which will never be displayed 
  5. echo $undefinedVar
  6. // this will generate a fatal error, which will be displayed 
  7. callUndefFunc(); 
  8. ?> 

將表B中的代碼與上面的進(jìn)行比較發(fā)現(xiàn),Listing B中隱藏錯(cuò)誤信息甚至隱藏致命信息,使得錯(cuò)誤信息不會(huì)被顯示出來。

表B

  1. <?php 
  2. // turn off error display 
  3. // no errors will be displayed 
  4. error_reporting(0); 
  5. // this will generate a notice 
  6. echo $undefinedVar
  7. // this will generate a fatal error 
  8. callUndefFunc(); 
  9. ?> 

表C中的代碼將所有錯(cuò)誤信息甚至簡(jiǎn)單的注重事項(xiàng)都顯示出來:

表C

  1. <?php 
  2. // all errors will be displayed 
  3. error_reporting(E_ALL); 
  4. // this will generate a notice 
  5. echo $undefinedVar
  6. // this will generate a fatal error 
  7. callUndefFunc(); 
  8. ?> 

如以上3個(gè)例子所示,error_reporting()函數(shù)在控制錯(cuò)誤發(fā)生時(shí),在屏幕上顯示內(nèi)容非常重要。這里的要害字是displayed,其表達(dá)的意思是錯(cuò)誤不被顯示而不是錯(cuò)誤沒有發(fā)生。因此,發(fā)生致命錯(cuò)誤時(shí)(例如不正確的函數(shù)調(diào)用),程序?qū)⒈唤K止;但是,此時(shí)沒有任何消息顯示給用戶。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩精品中文字幕一区二区三区 | 性高跟鞋xxxxhd4kvideos | 亚洲一级毛片 | 国产69精品久久久久久野外 | 国产精品毛片va一区二区三区 | 国产成人综合在线观看 | 欧美黄在线 | 久久国产精品区 | 毛片网站视频 | 嗯~啊~用力~高h | 国产精彩视频在线 | 成人毛片在线免费看 | 日本欧美国产 | 国产精品久久久久影院老司 | 亚洲精品一区国产精品丝瓜 | 91在线色视频 | 精品一区二区视频在线观看 | 中文字幕涩涩久久乱小说 | 日韩视频区| 亚洲视频综合网 | 久久综合色区 | 精品成人av一区二区在线播放 | 黄色免费大片 | 91精品国产乱码久久桃 | 青青草成人免费视频在线 | 羞羞视频一区二区 | 99视频有精品视频高清 | 国产午夜网 | 美国av片在线观看 | 一级一级一级一级毛片 | 看免费黄色大片 | 日韩视频在线视频 | 一级国产航空美女毛片内谢 | 欧美一级理论 | 曰韩毛片| 久久一区国产 | 污片在线观看视频 | 久久国产精品久久久久久久久久 | 一级毛片免费大片 | 成人毛片100部免费观看 | 偿还电影免费 |