2010-04-24 131 views
4

我們正在開發一種新的基於代碼的應用程序,它們從各種庫,模型等等向前和向後交叉引用不同的PHP函數。codeigniter/php應用程序中錯誤處理的最佳做法

我們在服務器上運行PHP5,我們試圖找到一種好方法來管理因使用我們的函數而產生的錯誤和狀態報告。 在函數中使用return時,執行結束,因此不會再發送任何更多內容。對?

在結束執行實際功能時發送狀態信息或錯誤代碼的最佳做法是什麼?

我們應該看看使用異常還是其他方法? http://us.php.net/manual/en/language.exceptions.php

回答

5

我們應該看看使用異常還是其他方法嗎?

由於您致力於PHP5,我認爲在自定義庫中使用異常是一個好主意。 Try/Catch和Exceptions的使用可以更好地控制代碼以及可能更強大的錯誤日誌記錄。

擴展Exceptions類將允許您精確控制模型和庫可以拋出什麼樣的異常以及如何對它們做出反應。

我可以想象有一個模型拋出一個dataInputException,如果它提供了錯誤的輸入,並且一個dataOperationException如果它無法對數據進行操作(例如$ this-> db-> insert()返回一個失敗)。你如何處理各種異常可能會有所不同。

在開發錯誤報告方面,Exceptions類方法將爲您提供大量信息(如文件名和行號)。另外,一些第三方代碼使用例外(例如Facebook Connect的PHP Lib)。

+0

謝謝Natebot。我們將更多地考慮異常,並瞭解我們可以從中學到什麼。這似乎是爲了我們正在做的。還有其他不錯的選擇嗎? – Industrial 2010-04-27 07:08:09

+0

我的經驗有限,當模型方法中的任何內容失敗時,大多數模型會拋出異常。 Controller方法嘗試/捕獲模型方法調用 - 因爲模型方法的失敗通常意味着控制器需要在所期望的範圍外完成某些操作(例如重定向到錯誤消息)。 catch可以記錄錯誤(或發送電子郵件給我的監測服務)。 – Natebot 2010-06-11 22:09:14

相關問題