關於函數調用,是它不如給主叫方檢查,如果一個函數或工作失敗,還是應該由誤差函數自身公佈的責任?錯誤 - 它們屬於邏輯還是表示層?
我問的原因是因爲我不喜歡混合演示文稿和邏輯,但是如果調用者必須進行錯誤檢查,它可能是不準確和繁瑣的,例如。
if(!login($username, $password)
{
echo 'Login failed. Please try again.';
}
調用者不知道爲什麼失敗。用戶名/密碼組合錯誤,還是數據庫連接失敗?或者其他一些意外的原因?
這不會是一個問題,如果我們可以將錯誤檢查/扔函數中的例外,因爲那樣我們將不得不在代碼例如數據庫連接失敗的特定點的特定錯誤......但是這將是混合呈現和邏輯。這裏最好的做法是什麼?
謝謝。
未通過身份驗證實際上不是「錯誤」。接收不正確的登錄名/密碼是程序正常操作過程中預計的事情。如果密碼匹配,函數應該返回true,否則返回false。 – cleong
@cleong在這種情況下,是的,但我認爲這只是一個通用問題的例子。 – Andy0708