php - 我该如何处理这种异常(在 Doctrine 中)

标签 php mysql doctrine

你能告诉我如何处理这种异常吗:

Fatal error: Uncaught exception 'Doctrine_Connection_Exception' with message 'PDO Connection Error: SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial communication packet', system error: 110' in ...

它发生在查询期间与 MySQL 的连接丢失时。我需要处理这个异常,这样我就可以显示 500 错误页面,这样爬虫就不会缓存页面,并将用户重定向到适当的“再试一次”页面。

附言我有很多代码,所以我不能遍历所有代码来放置 try/catch block 。我需要一些简单但有效的东西。

最佳答案

I need something simple and yet effective

try/catch 将是您唯一的选择 IMO。如果你有很多地方需要添加 try/catch 子句,你可以将这段代码移到一个单独的函数中。

如果,比方说,这一行抛出异常

$con->query($your_DQL_query) //结果在这里发生了一些事情

把它移到类似的地方

function goodQuery($sql) {
  try {
    $con->query($sql);
  } catch (Doctrine_Connection_Exception $dce) {
    //do something
  }
}

您仍然需要用调用函数 goodQuery(...) 来替换所有“throwing”方法,但这将使 future 的开发更容易,因为异常是在一个地方处理的。

关于php - 我该如何处理这种异常(在 Doctrine 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4707414/

相关文章:

orm - 使用 JMSSerialize 序列化遵循 SimplifiedYamlDriver 约定的 Doctrine2 实体

php - 复杂的 MySQL 连接与替换列

php - jQuery ajax php 长轮询

mysql - 按具体编号及之后查询顺序,按升序排序

mysql 未知列

php - 坚持冲刷后 Doctrine 关系消失

php - session 变量 : How much data is too much?

php - SQL连接3个表

php - mysql 在插入唯一记录时出错会在第一个错误时终止 foreach 循环吗?

php - 如何仅在 Doctrine 中按日期部分分组