PHP中錯誤處理

來源:互聯網
上載者:User

標籤:wamp   line   notice   輸出   建議   記錄   port   and   logs   

一、PHP中的錯誤處理

1、PHP中的錯誤層級

2、調整PHP錯誤報表層級  >>>PHP中,調整錯誤報表層級的方式有兩種:  ①修改php.ini檔案的配置項。     a.會導致在當前伺服器環境下的所有PHP檔案都受其影響     b.如果代碼要更換伺服器,會導致設定檔全部失效,需重新設定     所以,實際開發過程中,並不推薦這種修改方式  ②在代碼中,使用ini_set()函數,動態修改php.ini檔案的配置項   >>> php.ini中的兩個重要配置項     ①display_errors:開啟或關閉所有的錯誤層級    可選值:1/On 表示開啟錯誤報表功能 0/Off 表示關閉所有報告    預設是開啟,而且強烈建議保持開啟
 ini_set("display_errors","0"); //關閉所有錯誤報表功能
  ②error_reporting:設定那些錯誤,可以進行報告;    有兩個函數可以設定ini_set(); error_reporting();
ini_set("error_reporting","E_ALL");  // 報告全部錯誤error_reporting("error_reporting","E_ALL & ~E_NOTICE"); // 不報告注意NOTICE層級,其他錯誤正常報告
 3、使用錯誤記錄檔來記錄出現的錯誤  ①使用記錄檔記錄:     使用error_log();函數,將錯誤資訊輸出到記錄檔中;預設的記錄檔在wamp中的log檔案夾下,php_error.log檔案  >>>自訂記錄檔列印:
ini_set("error_log","E:/test.txt"); //設定記錄檔地址error_log("出錯啦!!"); //列印一句錯誤資訊error_log("又出錯啦!",3,"E:/test.txt"); //直接將錯誤列印到指定檔案中

 

  ②寫進windows系統日誌
ini_set("error_log","syslog"); //設定日誌記錄到系統日誌error_log("系統日誌出錯"); //使用日誌報錯時,將自動進入系統日誌
 4、trigger_error():自訂一個錯誤!會像系統的錯誤一樣,產生報錯。  參數a 錯誤的資訊內容  參數b 錯誤的層級。E_USER_WARNING E_USER_ERROR5、自訂錯誤處理函數:  ①聲明一個錯誤處理函數 function func()  ②使用set_error_handler("func"); 設定當檔案出現錯誤時,不再使用系統內建的錯誤提示功能,而是調用我們自訂的函數  >>> set_error_handler在觸發函數的時候,會預設向函數發送四個參數,分別是:錯誤的層級、錯誤的資訊、發生錯誤的檔案、錯誤所在的行號所以可以在聲明函數時,接收錯誤資訊,具體處理。
$errMessage = ""; ini_set("log_errors","On");      function errorHandler($type,$message,$file,$line){    global $errMessage;    switch ($type) {        case E_NOTICE:        $errMessage .= "發生了沒有什麼卵用的小bug,就不用處理了<br><br>";        break;        case E_WARNING:        $errMessage .= "出錯啦!!!";        $errMessage .= "錯誤類型是:{$type}";        $errMessage .= "錯誤資訊是:{$message}";        $errMessage .= "錯誤發生的檔案是:{$file}";        $errMessage .= "錯誤發生的行號是:{$line}";        $errMessage .= "<br><br>";        break;        case E_ERROR:        echo "<script>";         echo "location.href=‘../test.php‘";         echo "</script>";         break;        default:        echo "<script>";         echo "location.href=‘../test.php‘";         echo "</script>";         break;    }        }set_error_handler("errorHandler");

 

PHP中錯誤處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.