Zend framework 如何使用try catch for zend dbtable delete
我应该在下面的代码段中使用try-catch吗。我认为如果zend不能删除行或异常,它将返回整数(0)。那么什么更好,为什么Zend framework 如何使用try catch for zend dbtable delete,zend-framework,Zend Framework,我应该在下面的代码段中使用try-catch吗。我认为如果zend不能删除行或异常,它将返回整数(0)。那么什么更好,为什么 $statusDbObj = new Tracker_Model_DbTable_Status(); $where = $statusDbObj->getAdapter()->quoteInto('tracking_number = ?', $airwaybill_number); $delete = $statusDbObj->delete($whe
$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:
$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
{
$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方面是新手,这取决于您想要解决的问题类型:
$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
}
- 仅使用
结果将帮助您检测“预期问题”(即,当您无法删除条目,因为它们与delete
表达式不匹配时)where
- 如果您还使用
-try
结构(例如,捕获catch
,这可能是Zend\u Db\u异常
方法引发的),您还能够检测到“意外问题”(例如,如果Db连接失败)。如果省略此结构,最终的异常将弹出到代码的调用方,您还需要在某个地方解决它们delete
希望能有所帮助,这取决于您希望解决的问题类型:
$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
}
- 仅使用
结果将帮助您检测“预期问题”(即,当您无法删除条目,因为它们与delete
表达式不匹配时)where
- 如果您还使用
-try
结构(例如,捕获catch
,这可能是Zend\u Db\u异常
方法引发的),您还能够检测到“意外问题”(例如,如果Db连接失败)。如果省略此结构,最终的异常将弹出到代码的调用方,您还需要在某个地方解决它们delete
希望对第二个问题有帮助,,你是想用试试catch块吗?是的,我的意思是你需要同时使用这两个,以确保你能考虑所有可能的错误。只是你可能会遇到不同类型的错误,你需要以不同的方式解决它们。异常通常是运行时错误,而返回值可能是或不是错误,这取决于您的应用程序。谢谢您的建议。我将在这里使用TestCcatch来捕获DB连接失败或其他最终异常。对于第二个问题,您是否打算使用TestCcatch块?是的,我的意思是,您需要同时使用这两个,以确保您能够考虑所有可能的错误。只是你可能会遇到不同类型的错误,你需要以不同的方式解决它们。异常通常是运行时错误,而返回值可能是或不是错误,这取决于您的应用程序。谢谢您的建议。我将在这里使用try-catch来捕获数据库连接失败或其他最终异常。
$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
}