php7異常與錯誤處理

異常與錯誤的概述

什麼叫作異常?

異常是指程序運行中不符合預期狀況以及與正常流程不一樣的情況。php

好比你連接數據庫,在參數都寫上去的條件下,發現連接不上去,這就屬於不符合預期 html

能夠被 try-catch 捕捉獲得thinkphp

什麼叫作錯誤?

是屬於php程序自身的問題,通常是由非法的語法,環境問題致使的,使得編譯器沒法經過檢查,甚至沒法運行的狀況。
平時遇到的 warming、notice都是錯誤,只是級別不一樣而已。 數據庫

例如:segmentfault

  • TypeError(類型錯誤) 我規定的函數參數類型和傳入的參數不一致
  • ArithmeticError (算數錯誤)
  • ParseError (解析錯誤)在調入的文件中,include "demo.php",或者 eval();中有語法錯誤形成解析失敗
  • AssertionError(斷言錯誤)當assert生效時產生該錯誤
  • DivisionByZeroError (分母爲零) 運算過程當中例如除法,分母爲0

錯誤的級別

在 php 中的錯誤也是有級別的框架

Parse error >Fatal Error > Waning > Notice > Deprecated函數

Deprecated 最低級別的錯誤(不推薦,不建議)
使用一些過時函數的時候會出現,程序繼續執行

Notice 通知級別的錯誤
使用一些未定義變量、常量或者數組key沒有加引號的時候會出現,程序繼續執行
        E_NOTICE      // 運行時通知。表示腳本遇到可能會表現爲錯誤的狀況.
        E_USER_NOTICE // 用戶產生的通知信息。
        
Waning 警告級別的錯誤
程序出問題了,須要修改代碼!!!程序繼續執行
        E_WARNING         // 運行時警告 (非致命錯誤)。
        E_CORE_WARNING    // PHP初始化啓動過程當中發生的警告 (非致命錯誤) 。
        E_COMPILE_WARNING // 編譯警告
        E_USER_WARNING    // 用戶產生的警告信息
        
Fatal Error 錯誤級別的錯誤
程序直接報錯,須要修改代碼!!!中斷程序執行,可以使用register_shutdown_function()函數在程序終止前觸發一個函數
        E_ERROR         // 致命的運行錯誤,錯誤沒法恢復,暫停執行腳本
        E_CORE_ERROR    // PHP啓動時初始化過程當中的致命錯誤
        E_COMPILE_ERROR // 編譯時致命性錯,就像由Zend腳本引擎生成了一個E_ERROR
        E_USER_ERROR    // 自定義錯誤消息。像用PHP函數trigger_error(錯誤類型設置爲:E_USER_ERROR)
        
Parse error 語法解析錯誤
語法檢查階段報錯,須要修改代碼!!!中斷程序執行,除了修改ini文件,將錯誤信息寫到日誌中,什麼也作不了
        E_PARSE  //編譯時的語法解析錯誤

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章