我该如何处理这种例外(在学说中)

时间:2011-01-16 19:03:23

标签: php mysql doctrine

你能告诉我如何处理这种例外:

  

致命错误:未捕获的异常   'Doctrine_Connection_Exception'用   消息'PDO连接错误:   SQLSTATE [HY000] [2013]丢失连接   到'读取初始的MySQL服务器   通信包',系统错误:110'......

在查询期间丢失与MySQL的连接时会发生这种情况。我需要处理此异常,因此我可以显示500个错误页面,以便抓取工具不会缓存页面,并将用户重定向到相应的“再试一次”页面。

P.S。我有很多代码,所以我不能通过所有代码来放置try / catch块。我需要简单而有效的东西。

2 个答案:

答案 0 :(得分:1)

  

我还需要一些简单的东西   有效

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

例如,如果该行抛出了execption

$ CON组>查询($ your_DQL_query) //这里发生了一些结果

将其移至类似

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

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

答案 1 :(得分:0)

你没有使用Doctrine处理它...你使用编码语言处理。如果您使用的是PHP:

try {
  SomeClass::do_something(parameter);
} catch(DoctrineException $e) {
  show_error($e->getMessage());
}

这显然是sudo-code,但它给你一个想法......你可以显示一般错误或具体并显示教条的信息...