哪些PDO方法抛出异常?

时间:2009-12-28 00:33:10

标签: php pdo

在建立新的PDO数据库处理程序时,我必须将所有内容都包装到try-catch中,以防止出现将所有数据库访问数据打印给用户的错误消息。

但是,例如exec()等所有其他方法呢?我必须将所有这些包装到try-catch块中吗?那时PHP文档告诉一个方法抛出异常?

2 个答案:

答案 0 :(得分:5)

首先,您可以使用PDO::setAttribute方法设置PDO处理错误的方式,以设置PDO::ATTR_ERRMODE (错误报告)选项。

特别是,可以配置PDO,以便在出现错误时抛出异常,而不是报告“错误” - 这就是我通常所做的事情。


然后,当一个方法可以抛出异常时,它应该在它的文档中指出 - 通常,它在“返回值”部分。

例如,PDO::prepare可以抛出异常 - 取决于错误报告(请参阅我之前写的内容)

  

如果数据库服务器不能   成功准备声明,   PDO::prepare()返回FALSE或   发出PDOException(取决于   错误处理)。


作为旁注:如果您发现抛出异常的函数/方法,并且未在其文档中指出,那么创建错误报告(请参阅http://bugs.php.net/)可能是个好主意,以便更正问题; - )

(文档中的错误/错误/缺失信息通过错误跟踪器处理,就像任何其他错误一样)

答案 1 :(得分:2)

您可以通过查看手册来查看该方法是否抛出异常。

如果您查看__construct的手册,您会在错误/异常的底部看到它会引发异常。