簡體   English   中英

在MVC框架中捕獲異常的位置

[英]Where to catch exceptions in a MVC framework

每個人都在談論異常處理的重要性。 直到最近我才需要處理它們:

try { 
    $pdo = new PDO($dns); 
} catch (Exception $e) {
    throw new Exception($e); 
} 

另一個更一般的例子是:

if ($something) {
    throw new Exception('Ouch! I can't do that!');
}

經過一些在線研究后,我發現許多在線示例/解決方案只是回應它們。 PDO異常問題 - 如何捕獲它們 )有些人沒有解決方案。 在較低層捕獲PDOException並將其作為不同的異常重新投擲到上層 )&( 在PHP MVC應用程序中捕獲異常的位置? )和其他人,我只是不明白。 在哪里捕獲例外

問題1:我應該在哪里捕獲例外情況; MVC ish框架的模型或控制器中?

問題2:它應該捕捉到什么? 記錄,發送電子郵件,顯示503?

我是一個.net人,對我來說是捕獲異常的最佳做法:

  • 盡可能晚地抓住它。
  • 編寫一個公共代碼來捕獲異常。
  • 在控制器級別捕獲它並使用完整的堆棧跟蹤(ETW,日志文件,數據庫等)將其記錄到某處。
  • 將用戶重定向到一些好看的錯誤頁面。 只有控制器才能這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM