标题: Zend Framework干扰try{}catch(){}?
wps2000
新手上路
Rank: 1



UID 34
精华 0
积分 0
帖子 73
翻译 0
原创 0
阅读权限 10
注册 2007-5-20
状态 离线
发表于 2007-9-2 15:04  资料  短消息  加为好友 
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真的不该搞成这样,太麻烦了,还得手工检测是否数据库中有重复的记录





顶部
wps2000
新手上路
Rank: 1



UID 34
精华 0
积分 0
帖子 73
翻译 0
原创 0
阅读权限 10
注册 2007-5-20
状态 离线
发表于 2007-9-2 15:10  资料  短消息  加为好友 


PHP代码如下:

<?php
class ExceptionController extends Zend_Controller_Action 
{
 public function 
indexAction()
 {
  try {
   throw new 
Zend_Exception('你好');
  }
  catch (
Zend_Exception $e)
  {
   echo 
'捕获到了';
  }
 }
}



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





顶部
qqinxl
新手上路
Rank: 1



UID 112
精华 0
积分 0
帖子 2
翻译 0
原创 0
阅读权限 10
注册 2007-6-25
状态 离线
发表于 2007-9-5 08:57  资料  短消息  加为好友 
Ls 第一次学习Php?还是也没接触过java之类的?

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

顶部
wps2000
新手上路
Rank: 1



UID 34
精华 0
积分 0
帖子 73
翻译 0
原创 0
阅读权限 10
注册 2007-5-20
状态 离线
发表于 2007-9-6 12:10  资料  短消息  加为好友 
ls的给个解释?





顶部
wps2000
新手上路
Rank: 1



UID 34
精华 0
积分 0
帖子 73
翻译 0
原创 0
阅读权限 10
注册 2007-5-20
状态 离线
发表于 2007-9-6 12:12  资料  短消息  加为好友 
不论怎么说,我的catch快都比Zend的catch块更优先的捕获异常,可惜的是,貌似没有
Zend_Exception的确是继承自Exception的





顶部
Haohappy
超级版主
Rank: 8Rank: 8
PHPEye站长


UID 2
精华 11
积分 110
帖子 285
翻译 6
原创 1
阅读权限 150
注册 2007-5-2
状态 离线
发表于 2007-9-8 20:31  资料  短消息  加为好友  添加 haohappy 为MSN好友 通过MSN和 haohappy 交谈
我的都正常。。

PHP代码如下:
function editOne($data,$where){
        try{
        
// 更新表数据,返回更新的行数
        
$rows_affected $this->update($data$where);
        }catch (
PDOException $e){
            echo 
"Exception caught : {$e->getMessage()}\n";
            exit;
        }
    }








互助共享,共同成长。
顶部
mikespook
新手上路
Rank: 1



UID 95
精华 1
积分 10
帖子 10
翻译 0
原创 0
阅读权限 10
注册 2007-6-21
状态 离线
发表于 2007-9-9 08:52  资料  短消息  加为好友 
我的也正常~~

                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');                    
                }

顶部
wps2000
新手上路
Rank: 1



UID 34
精华 0
积分 0
帖子 73
翻译 0
原创 0
阅读权限 10
注册 2007-5-20
状态 离线
发表于 2007-9-9 19:45  资料  短消息  加为好友 
各位什么版本PHP 啊





顶部
keenlio
新手上路
Rank: 1



UID 147
精华 0
积分 0
帖子 26
翻译 0
原创 0
阅读权限 10
注册 2007-7-3
来自 新加坡
状态 离线
发表于 2008-5-12 12:52  资料  主页 短消息  加为好友  添加 keenlio 为MSN好友 通过MSN和 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





不思量 自难忘
顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2009-1-9 07:10

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.023973 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver