如何使用try catch for zend dbtable delete

时间:2011-11-21 10:57:35

标签: zend-framework

我应该在下面的代码片段中使用try catch吗?我认为如果zend无法删除行或异常,它将返回整数(0)。那么更好的是什么?为什么?

$statusDbObj = new Tracker_Model_DbTable_Status();
$where =  $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number);
$delete = $statusDbObj->delete($where);
if($delete > 0)
{  
   // do something
}
else
{
   // not deleted
}

以下是try catch:

   try
   {   
     $statusDbObj = new Tracker_Model_DbTable_Status();
     $where =  $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number);
     $delete = $statusDbObj->delete($where);

     if($delete > 0)
     {  
       // do something
     }
   }
   catch (Exception $e)
   {
     // not deleted and print error
   }

我是使用try catch

的新手

1 个答案:

答案 0 :(得分:1)

这取决于您想要解决的问题类型:

  • 只需使用delete结果即可帮助您检测"预期的问题" (即,当您无法删除条目时,因为它们与where表达式不匹配)。
  • 如果您还使用try - catch结构(例如,抓住可能被Zend_Db_Exception方法抛出的delete),您就可以# 39;还能够发现"意外问题" (例如,如果数据库连接失败)。如果省略此结构,最终的异常将弹出到代码的调用者,并且您还需要在某处解决它们。

希望有所帮助,