YAF 关闭错误异常使用trigger_error来处理

Yaf_Exception是Yaf使用的异常类型, 它继承自Exception, 并实现了异常链,其中有一项是:

只有在ap.throw_exception(php.ini)或者ap.throwException(配置文件)开启的情况下, Yaf才会抛出异常, 否则Yaf在出错的时候将trigger_error, 这种情况下, 可以使用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");
?>

如果这样在Bootstarp.php加入是不正常的会报:

Warning: set_error_handler() expects the argument (myError) to be a valid callback in /home/www/zh.shop/trunk/application/Bootstrap.php on line 30

Catchable fatal error: Yaf_Application::run() [yaf-application.run]: Failed opening controller script /home/www/zh.shop/trunk/application/controllers/Prodfdfduct.html.php: Success in /home/www/zh.shop/trunk/index.php on line 11

修改如下:

Yaf_Dispatcher::getInstance()->setErrorHandler(array($this,"myErrorHandler"));

 

 

转载于:https://my.oschina.net/20130614/blog/132844

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值