哪些PDO方法抛出异常?

ope*_*rog 4 php pdo

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

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

Pas*_*TIN 5

首先,您可以使用该PDO::setAttribute方法设置PDO如何处理错误,以设置PDO::ATTR_ERRMODE (错误报告)选项.

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


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

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

如果数据库服务器无法成功准备语句,则 PDO::prepare()返回FALSE或发出PDOException(取决于错误处理).


作为旁注:如果你发现一个抛出异常的函数/方法,并且它的文档中没有说明,那么创建一个bug报告(参见http://bugs.php.net/)可能是个好主意,所以那个问题得到纠正;-)

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