09 錯(cuò)誤處理

錯(cuò)誤分類

  • 語法錯(cuò)誤
  • 運(yùn)行時(shí)錯(cuò)誤:提示性錯(cuò)誤朱浴,警告性錯(cuò)誤吊圾,致命性錯(cuò)誤
  • 邏輯錯(cuò)誤

錯(cuò)誤分級

php語言將各種錯(cuò)誤作了不同級別的分類,形成了大概有十幾個(gè)級別翰蠢,這就是技術(shù)層面的錯(cuò)誤分級项乒。
每一個(gè)級別的錯(cuò)誤,都有一個(gè)代號(hào)梁沧,其實(shí)就是系統(tǒng)內(nèi)部的一個(gè)常量罷了檀何。

  • 系統(tǒng)常見錯(cuò)誤
    E_ERROR,值為1廷支,對應(yīng)二進(jìn)制0000 0000 0000 0001
    E_WARNING频鉴,值為2,對應(yīng)二進(jìn)制0000 0000 0000 0010
    E_NOTICE恋拍,值為4垛孔,對應(yīng)二進(jìn)制0000 0000 0000 0100
  • 用戶可自定義錯(cuò)誤
    E_USER_ERROR
    E_USER_WARNING施敢,
    E_USER_NOTICE
  • 其他
    E_STRICT //嚴(yán)謹(jǐn)性語法檢查錯(cuò)誤
    E_ALL //代表所有錯(cuò)誤似炎,對應(yīng)二進(jìn)制0111 0111 1111 1111

錯(cuò)誤觸發(fā)

有時(shí)候我們要求程序觸發(fā)錯(cuò)誤辛萍,以糾正某些東西。
trigger_error

$age = 800;
if($age > 127 || $age < 0){
    trigger_error("年齡不符合要求", E_USER_ERROR);    //三種用戶自定義錯(cuò)誤之一
}else{
    echo "輸入年齡正確";
}


錯(cuò)誤報(bào)告顯示

就是將錯(cuò)誤顯示在網(wǎng)頁上嘛

  • 是否顯示錯(cuò)誤報(bào)告
    1.在php.ini中羡藐,設(shè)定display_errors的值贩毕,為on或者off
    2.直接在php腳本文件中(在頂部?)使用函數(shù) ini_set() 進(jìn)行設(shè)置
    ini_set("display_errors", 0);    //不顯示錯(cuò)誤
    ini_set("display_errors", 1);    //顯示錯(cuò)誤
    
  • 顯示哪些級別的錯(cuò)誤
    1.在php.ini中仆嗦,error_reporting中設(shè)置
    有3個(gè)值辉阶,默認(rèn)值開發(fā)階段值瘩扼,產(chǎn)品階段值谆甜。
    根據(jù)不同階段,寫上不同的值就可以了集绰。
    error_reporting.PNG

    2.在當(dāng)前php腳本文件中
    ini_set("error_reporting", E_NOTICE);    //顯示一個(gè)級別的錯(cuò)誤
    ini_set("error_reporting", E_NOTICE | E_WARNING);    //顯示兩個(gè)級別的錯(cuò)誤
    


錯(cuò)誤日志記錄問題

  • 是否記錄
    1.在php.ini中設(shè)置规辱,log_errors = on 或 off
    2.在腳本中設(shè)置ini_set("log_errors", 1),或者0
  • 記錄在哪里
    1.直接使用一個(gè)文件名栽燕,此時(shí)系統(tǒng)會(huì)自動(dòng)在每個(gè)文件夾下都建立該文件名罕袋,并用于記錄該文件夾下所有網(wǎng)頁文件的錯(cuò)誤
    ini_set("log_errors", "my_error.txt");
    
    2.使用一個(gè)特殊文件名字,syslog碍岔,此時(shí)站點(diǎn)的所有錯(cuò)誤都記錄到系統(tǒng)的日志文件中浴讯,非常少用“玻控制面板=>管理工具=>時(shí)間查看器
      ini_set("log_errors", "syslog");
    


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

  • 設(shè)置處理函數(shù)的函數(shù)名
    set_error_handler("func1");
    
  • 定義該函數(shù)榆纽。不需要調(diào)用該函數(shù),發(fā)生錯(cuò)誤的話捏肢,會(huì)自動(dòng)調(diào)用奈籽。這個(gè)挺好用的
    function func1($errCode, $errMsg, $errFile, $errLine){
        //任意寫代碼
        echo "發(fā)生錯(cuò)誤";
        echo "<br/>錯(cuò)誤代號(hào)為:" . $errCode;
        echo "<br/>錯(cuò)誤內(nèi)容為:" . $errM's'g;
        echo "<br/>錯(cuò)誤文件為:" . $errFile;
        echo "<br/>錯(cuò)誤行號(hào)為:" . $errLine;
    }
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鸵赫,隨后出現(xiàn)的幾起案子衣屏,更是在濱河造成了極大的恐慌,老刑警劉巖奉瘤,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異煮甥,居然都是意外死亡盗温,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門成肘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卖局,“玉大人,你說我怎么就攤上這事双霍⊙馀迹” “怎么了批销?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長染坯。 經(jīng)常有香客問我均芽,道長,這世上最難降的妖魔是什么单鹿? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任掀宋,我火速辦了婚禮,結(jié)果婚禮上仲锄,老公的妹妹穿的比我還像新娘劲妙。我一直安慰自己,他們只是感情好儒喊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布镣奋。 她就那樣靜靜地躺著,像睡著了一般怀愧。 火紅的嫁衣襯著肌膚如雪侨颈。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天掸驱,我揣著相機(jī)與錄音肛搬,去河邊找鬼。 笑死毕贼,一個(gè)胖子當(dāng)著我的面吹牛温赔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鬼癣,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼陶贼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了待秃?” 一聲冷哼從身側(cè)響起拜秧,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎章郁,沒想到半個(gè)月后枉氮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡暖庄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年聊替,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片培廓。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惹悄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肩钠,到底是詐尸還是另有隱情泣港,我是刑警寧澤暂殖,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站当纱,受9級特大地震影響呛每,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜惫东,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一莉给、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧廉沮,春花似錦颓遏、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至坪稽,卻和暖如春曼玩,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背窒百。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工黍判, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人篙梢。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓顷帖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親渤滞。 傳聞我的和親對象是個(gè)殘疾皇子贬墩,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容

  • php.ini設(shè)置,上傳大文件: post_max_size = 128Mupload_max_filesize ...
    bycall閱讀 6,755評論 3 64
  • 文件加載 語法形式:include、include_once妄呕、require陶舞、require_once4 種語法都...
    THEyAnJ閱讀 549評論 0 1
  • 個(gè)人學(xué)習(xí)批處理的初衷來源于實(shí)際工作;在某個(gè)迭代版本有個(gè)BS(安卓手游模擬器)大需求绪励,從而在測試過程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,717評論 0 11
  • 簡介 PHP提供了錯(cuò)誤處理和日志記錄的功能. 這些函數(shù)允許你定義自己的錯(cuò)誤處理規(guī)則肿孵,以及修改錯(cuò)誤記錄的方式. 這樣...
    零一間閱讀 638評論 0 2
  • PHP錯(cuò)誤簡介 PHP提供了錯(cuò)誤處理和日志記錄的功能. 這些函數(shù)允許你定義自己的錯(cuò)誤處理規(guī)則,以及修改錯(cuò)誤...
    四月不見閱讀 2,506評論 0 7