在我的PHP代碼中,有幾種類型的異常。一個是'正常'Exception
,另一個是PDOException
。我正在使用set_exception_handler($handler)
自動捕獲異常。單獨的PDO異常處理程序
有什麼辦法可以得到單獨的處理程序的異常和PDOException?
如果不是,我可以檢查處理程序中的異常類型嗎?
在我的PHP代碼中,有幾種類型的異常。一個是'正常'Exception
,另一個是PDOException
。我正在使用set_exception_handler($handler)
自動捕獲異常。單獨的PDO異常處理程序
有什麼辦法可以得到單獨的處理程序的異常和PDOException?
如果不是,我可以檢查處理程序中的異常類型嗎?
我想你應該有一個「全局」處理程序和分支。
set_exception_handler(function ($exception) {
if ($exception instanceof PDOException) {
handle_pdo_exception($exception);
return;
}
log($exception);
});
謝謝你澄清你的問題。
我想你是在錯誤的假設問。
事實上,要麼正常的異常需要記錄到一個共同的error_log
和PDOexception必須觸發一個通用的500錯誤頁面顯示給用戶。分開這些事情沒有意義。因此,您可以使用常見的異常處理程序來處理代碼中的所有異常事件。
但我怎麼區分這兩者呢? – Keelan
另一個答案解釋它。雖然我的答案的重點是,區分這些(實際上超過兩個實例)異常類型沒有意義。每個人都必須記錄,但每個人都必須觸發通用的503錯誤頁面才能顯示。 –
爲什麼你想要它? –
@YourCommonSense,因爲我想以與Exceptions不同的方式處理PDOException。我說一些愚蠢的東西嗎? – Keelan
我很明白。爲什麼要以其他方式處理PDOException?或者更確切地說,你將如何處理PDO異常? –