Pdo错误捕获尝试/捕获

时间:2013-05-08 18:35:20

标签: php mysql pdo

在我的Pdo语句中使用try catch块后,这真的有什么好处吗?这会降低您的代码速度吗?

我认为在数据库连接失败的情况下应该尝试捕获连接命令。但是真的需要尝试捕捉每个预先准备好的声明吗?这些应该永远不会改变,永远不会出错。

有什么想法吗?

我正在使用Php和MySql。

1 个答案:

答案 0 :(得分:1)

这没有任何好处:

try {
  // exec statement
  // exec statement
}
catch (Exception $e) {
  // do nothing
}

如果您不打算对错误做任何事情并提供合理的解决方案,那么您也可以让异常冒泡到应用程序的主要“出错”错误页面。

但你可能想这样做:

// begin transaction
try {
  // exec statement
  // exec statement
  // commit transaction
}
catch (Exception $e) {
  // rollback transaction
  // handle error or rethrow $e; 
}

准备好的语句可以抛出异常。可能违反了唯一键,或者是外键约束等等。

但重点是,你不要使用例外来隐藏或消除错误。您可以使用它们来捕获错误,智能地处理它并继续相应的操作。