我有以下腳本。什麼類型的異常拋出自定義錯誤?
根據http://php.net/manual/en/class.pdoexception.php,您不應該從您自己的代碼中拋出PDOException。
但是我想要執行同樣的catch,無論是PDOException還是我爲無效foo投擲的異常。
我也被告知我不應該捕獲泛型異常,但只捕獲特定的異常。
這應該如何實施?
try {
db::db()->beginTransaction();
//Do a bunch of queries, and a PDO exception will be thrown upon error
if($foo($bar)) {throw new Exception('Invalid foo.');}
db::db()->commit();
} catch (PDOException $e) {
db::db()->rollBack();
//Maybe do some other stuff
}
不要覺得有什麼不妥一般例外。你可以拋出並捕獲RuntimeException –