有沒有一種方法,使一類這樣的這一個:有沒有辦法讓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