在建立新的PDO数据库处理程序时,我必须将所有内容都包装到try-catch中,以防止出现将所有数据库访问数据打印给用户的错误消息。
但是,例如exec()等所有其他方法呢?我必须将所有这些包装到try-catch块中吗?那时PHP文档告诉一个方法抛出异常?
答案 0 :(得分:5)
首先,您可以使用PDO::setAttribute
方法设置PDO处理错误的方式,以设置PDO::ATTR_ERRMODE
(错误报告)选项。
特别是,可以配置PDO,以便在出现错误时抛出异常,而不是报告“错误” - 这就是我通常所做的事情。
然后,当一个方法可以抛出异常时,它应该在它的文档中指出 - 通常,它在“返回值”部分。
例如,PDO::prepare
可以抛出异常 - 取决于错误报告(请参阅我之前写的内容):
如果数据库服务器不能 成功准备声明,
PDO::prepare()
返回FALSE
或 发出PDOException
(取决于 错误处理)。
作为旁注:如果您发现抛出异常的函数/方法,并且未在其文档中指出,那么创建错误报告(请参阅http://bugs.php.net/)可能是个好主意,以便更正问题; - )
(文档中的错误/错误/缺失信息通过错误跟踪器处理,就像任何其他错误一样)
答案 1 :(得分:2)
您可以通过查看手册来查看该方法是否抛出异常。
如果您查看__construct的手册,您会在错误/异常的底部看到它会引发异常。