我试图尝试使用PDO异常做一些有用的事情而不是显示它们,但我找不到我的生活如何使用错误处理程序(set_error_handler)或任何自定义来处理PDO异常。
现在我正在使用try
.. catch
块当然捕获异常,我是否在catch
部分实现了自定义错误处理程序,或者我可以跳过尝试>完全捕获块,因为异常处理程序会为我处理它(通过在语句上调用or throw new exception (...)
?
我想我要问的是一个示例来捕获PDO异常并记录它们或多或少(任何简单的代码是否正确我都可以使用,我不是太愚蠢)。
答案 0 :(得分:10)
您必须在每个PDO查询周围使用try..catch块。在catch部分添加日志功能。 PHP中的异常没有通用处理程序。
try {
pdo::error();
}
catch (Exception $e) {
syslog($e);
}
如果要避免使用try..catch块,可以将PDO配置为仅显示错误而不是抛出异常。 http://php.net/manual/en/pdo.error-handling.php
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );