PHPEye开源社区 » Zend Framework 使用讨论 » Zend Framework干扰try{}catch(){}?
《Programming PHP》第二版上市
2007-9-2 15:04 wps2000
Zend Framework干扰try{}catch(){}?

越来越发现麻烦了

try{
//执行数据库操作
}
catch(Exception $e)
{
}

结果都会导致一个 Uncaught exception 'Zend_Db_Statement_Exception' with message '

即使改成 try{}catch(Zend_Exception $e){}依然无效,Guarded Region中的异常无论怎样都不会被紧跟在后面的catch块捕获、即使把catch的type放宽到 exception

这貌似是PHP的问题吧,不过Zend Framework真的不该搞成这样,太麻烦了,还得手工检测是否数据库中有重复的记录

2007-9-2 15:10 wps2000
[php]
<?php
class ExceptionController extends Zend_Controller_Action
{
public function indexAction()
{
  try {
   throw new Zend_Exception('你好');
  }
  catch (Zend_Exception $e)
  {
   echo '捕获到了';
  }
}
}[/php]

异常还是会冒泡到最高层,真他妈无聊,Zend为什么要修改异常的处理机制?

2007-9-5 08:57 qqinxl
Ls 第一次学习Php?还是也没接触过java之类的?

一个框架 能够修改异常处理机制,怎么可能?又不是设置在php.ini里。

2007-9-6 12:10 wps2000
ls的给个解释?

2007-9-6 12:12 wps2000
不论怎么说,我的catch快都比Zend的catch块更优先的捕获异常,可惜的是,貌似没有
Zend_Exception的确是继承自Exception的

2007-9-8 20:31 Haohappy
我的都正常。。
[php]function editOne($data,$where){
                try{
                // 更新表数据,返回更新的行数
                $rows_affected = $this->update($data, $where);
                }catch (PDOException $e){
                        echo "Exception caught : {$e->getMessage()}\n";
                        exit;
                }
        }       
[/php]

2007-9-9 08:52 mikespook
我的也正常~~

                try
                {
                    $catName = $this->getParam('catName');
                    if ($catName === '')
                    {
                        throw new Exception('分类名称不能为空!');
                    }
                    $catMemo = $this->getParam('catMemo');
                    $catParent = $this->getParam('catParent');
                    $categoryModel->add($catName, $catParent, $catMemo);
                    $this->_db->commit();
                    $this->feedback('添加成功!', '注意', "/admin/category/index");
                }
                catch(Exception $e)
                {
                    $this->_db->rollback();
                    $this->feedback($e->getMessage(), '注意', 'javascript:window.history.back();', 'warning');                    
                }

2007-9-9 19:45 wps2000
各位什么版本PHP 啊

2008-5-12 12:52 keenlio
我的也正常。。php5.2.5 MySQL5.0.45 Apache 2.26

try {

      $db->insert('tbl', $query1);
      $db->commit();
    }
    catch (Exception $e) {
      $db->rollBack();
      $errorMsg[] = $e->getMessage();
    }// end of catch exception

页: [1]


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.