我使用異常拋出函數在php中的類中檢查參數。我有一些基本檢查功能(===
,in_array
等),並在false上拋出異常。所以我可以做assertNumeric($argument, "\$argument is not numeric.");
代替使用斷言在php中進行類型檢查?
if (! is_numeric($argument)) {
throw new Exception("\$argument is not numeric.");
}
節省一些打字
我在php manual page on assert()是
正如維基百科指出的評論閱讀 - 「斷言 主要開發工具,他們 往往是當一個程序是 向公衆發佈時被禁用。「以及 「斷言應該用來記錄 邏輯上是不可能的情況下和 發現編程錯誤 - 如果 ‘不可能’發生,那麼就有 基本顯然是錯誤的這是 從錯誤處理不同:最 錯誤情況是可能的, 。 雖然有些人可能會非常 不可能在實踐中出現使用 斷言通用錯誤 處理機制通常是不明智的: 斷言不允許從錯誤中優美 恢復,並斷言 故障往往會停止程序的 執行突然間。斷言還做 不顯示用戶友好的錯誤 消息。」
這意味着, 給出的建議‘GK在proliberty點com’給力 斷言啓用,即使 他們已手動禁用,去 只針對使用 他們作爲開發工具
所以最佳實踐,我在「做錯了」?還有什麼其他/更好的這樣做的方法有哪些?
正如旁註:你想用這種方式驗證用戶輸入嗎?如果是這樣的話,我認爲無效的用戶輸入是不尋常的。 – Maxem 2010-05-11 19:47:02
@Maxem好吧,如果我沒有健壯地編寫代碼,可能會發生這種情況。基本上我正在做的是如果參數不好,渲染對象顯然是無用的。我喜歡KISS哲學。 – user151841 2010-05-11 19:50:37
如果您的用戶輸入驗證器失敗並進一步下載到庫中,那麼*會是什麼樣的例外,他們確實希望理智的輸入和瘋狂的東西。 * *表示例外。測試將被稱爲健康檢查。 – 2010-08-27 17:22:03