php錯誤顯示及報告處理 (2)

承上:

 PHP還允許您通過 set_error_handler( ) 函數指定您自已的出錯處理函數。

如:set_error_handler('my_error_handler');

錯誤處理函數

function my_error_handler($number, $string, $file, $line, $context)

  {

    $error = "=  ==  ==  ==  ==/nPHP ERROR/n=  ==  ==  ==  ==/n";

    $error .= "Number: [$number]/n";

    $error .= "String: [$string]/n";

    $error .= "File:   [$file]/n";

    $error .= "Line:   [$line]/n";

    $error .= "Context:/n" . print_r($context, TRUE) . "/n/n";

 

    error_log($error, 3, 'c:/log.txt');

  }

則當

<?php
ini_set('error_reporting', E_ALL | E_STRICT);

ini_set('display_errors', 'Off');

ini_set('log_errors', 'On');

set_error_handler('my_error_handler');

echo $test;


 function my_error_handler($number, $string, $file, $line, $context)  {

    $error = "=  ==  ==  ==  ==/nPHP ERROR/n=  ==  ==  ==  ==/n";

    $error .= "Number: [$number]/n";

    $error .= "String: [$string]/n";

    $error .= "File:   [$file]/n";

    $error .= "Line:   [$line]/n";

    $error .= "Context:/n" . print_r($context, TRUE) . "/n/n";

 

    error_log($error, 3, 'c:/log.txt');

  }


?>

時,同樣會把錯誤顯示在log.txt下。當然也可通過某個函數專門處理錯誤發生時的流程。

PHP 5還允許向set_error_handler( )傳遞第二個參數以限定在什麼出錯情況下執行出定義的出錯處理函數。比如,現在建立一個處理告警級別(warning)錯誤的函數:

  <?php

  set_error_handler('my_warning_handler', E_WARNING);

  ?>

    PHP5還提供了異常處理機制。這個後續若有學習再留下筆記。

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