Return to Snippet

Revision: 334
at July 10, 2006 02:19 by hiro


Updated Code
/**
 * 開発時につかうエラーハンドラ
 * 
 * E_USER_ERROR   プログラムを終了するようなエラー(DB接続不能など)
 * E_USER_WARNING 想定外の動作の警告(意図しない変数の上書きなど)
 * E_USER_NOTICE  エラーではないが、想定した動作をしているか確認できるためのデバッグ情報
 *
 * @return void
 * @param   PHP の set_error_handler() 関数のマニュアル参照
 */
function handle_error($err_no, $err_str, $err_file, $err_line)
{
  global $config;
  if(preg_match('/' . $config['log_filter_ignore'] . '/', $err_str)) {
    return;
  }
  
  $bc = debug_backtrace();
  array_shift($bc);

  // バックトレースを表示
  $str = "<table>";
  foreach($bc as $b) {
    if(isset($b['args'][0])) {
      $mess = $b['args'][0];
    } else {
      $mess = '';
    }

    if(preg_match('/validate/', $b['function'])) {
      continue;
    }
    
    $str .= "<tr>";
    $str .= "<td>" . $b['file'] . '(' . $b['line'] . ') </td><td>' . $b['function'] . '</td><td>' . $mess . '</td>';
    $str .= "</tr>";
  }
  $str .= "</table>";
  print $str;
}

Revision: 333
at July 10, 2006 02:17 by hiro


Initial Code
/**
 * 開発時につかうエラーハンドラ
 * 
 * E_USER_ERROR   プログラムを終了するようなエラー(DB接続不能など)
 * E_USER_WARNING 想定外の動作の警告(意図しない変数の上書きなど)
 * E_USER_NOTICE  エラーではないが、想定した動作をしているか確認できるためのデバッグ情報
 *
 * @return void
 * @param   PHP の set_error_handler() 関数のマニュアル参照
 */
function handle_error($err_no, $err_str, $err_file, $err_line)
{
  global $config;
  if(preg_match('/' . $config['log_filter_ignore'] . '/', $err_str)) {
    return;
  }
  
  $bc = debug_backtrace();
  array_shift($bc);

  // バックトレースを表示
  $str = "<table>";
  foreach($bc as $b) {
    if(isset($b['args'][0])) {
      $mess = $b['args'][0];
    } else {
      $mess = '';
    }

    if(preg_match('/validate/', $b['function'])) {
      continue;
    }
    
    $str .= "<tr>";
    $str .= "<td>" . $b['file'] . '(' . $b['line'] . ') </td><td>' . $b['function'] . '</td><td>' . $mess . '</td>';
    $str .= "</tr>";
  }
  $str .= "</table>";
  var_dump($str);
  //$str = "[" . $err_no . "]" . $err_str . "\r\n file:" . $err_file . "(" . $err_line . ")";
  //print $str;
  print $str;
  //var_dump($err_no, $err_str, $err_file, $err_line);
}

Initial URL

                                

Initial Description
適当エラーハンドラ

Initial Title
エラーハンドラ

Initial Tags

                                

Initial Language
PHP