有没有一种方法,使一类这样的这一个:有没有办法让PDO子对象抛出CustomException而不是PDOException?
class DB extends PDO {}
(其中备案只有一个方法(构造函数)重载父之一,所以我们没有传递参数的构造和我们连接经由配置文件)
能够在任何情况下抛出定制CustomException
这样的:
throw new CustomException($e->getMessage(), 500, array($e->...));
与$e
作为PDOException
occurre的一个实例d,而不是默认PDOException
,没有包装try-catch块中的所有方法?
这是什么原因? – Niko 2012-03-26 11:17:54
@尼科,漫长而漂亮的故事。我必须有一个集中的CustomException,它应该覆盖我的应用程序将抛出的所有异常。相信我。在使用之前,我必须将PDOException s转换为CustomException s,之后我不能这样做;不,我不能将PDO的错误模式设置为正常的PHP错误,并将它们视为正常警告。 – Shoe 2012-03-26 11:20:04
如果您需要在某个时候捕获所有异常,您可能需要考虑在那里使用catch(Exception $ e)'。捕获PDOExceptions以及CustomExceptions。 – Niko 2012-03-26 11:23:26