> Yaf中文手册 > Yaf_Dispatcher::setErrorHandler

名称

Yaf_Dispatcher::setErrorHandler

(Since Yaf 1.0.0.5)

public boolean Yaf_Dispatcher::setErrorHandler( mixed  $callback ,
                                                int  $error_code = E_ALL | E_STRICT );

设置错误处理函数, 一般在appcation.throwException关闭的情况下, Yaf会在出错的时候触发错误, 这个时候, 如果设置了错误处理函数, 则会把控制交给错误处理函数处理.

参数
$callback

错误处理函数, 这个函数需要最少接受俩个参数: 错误代码($error_code)和错误信息($error_message), 可选的还可以接受三个参数: 错误文件($err_file), 错误行($err_line)和错误上下文($errcontext)

$error_code

要捕获的错误类型

返回值

成功返回Yaf_Dispatcher, 失败返回FALSE

例子

例 11.24. Yaf_Dispatcher::setErrorHandler的例子

     
<?php
/** 
 * 一般可放在Bootstrap中定义错误处理函数
 */
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    switch ($errno) {
    case YAF_ERR_NOTFOUND_CONTROLLER:
    case YAF_ERR_NOTFOUND_MODULE:
    case YAF_ERR_NOTFOUND_ACTION:
         header("Not Found");
    break;

    default:
        echo "Unknown error type: [$errno] $errstr<br />\n";
        break;
    }

    return true;
}

Yaf_Dispatcher::getInstance()->setErrorHandler("myErrorHandler");
?>