相信請求後,有兩種類型的錯誤,可以根據用戶的請求期間發生。OOD的報告錯誤處理用戶在服務層
{1}:系統錯誤(異常,致命的錯誤,警告,通知等)
{2}:用戶控制誤差(什麼用戶做錯了,通常驗證過程中可能出現)
一般報告{1}相對簡單。大多數人只會顯示錯誤頁面或通知。 {2}的情況是不同的。
的Yii和Rails和其他一些框架提供了一個驗證方案,您可以在模型中的每個屬性指定驗證器。在驗證過程中,驗證器將驗證指定屬性並以地圖形式報告錯誤:attributeName =>錯誤數組。
在應用程序中,在Service Layer服務可能依賴其他服務邏輯和領域模型邏輯,所以它的屬性集和驗證也依賴於這些國外服務和域模型。
例如,用戶註冊服務擁有的屬性「用戶名」和「密碼」,其邏輯規則可以依賴於用戶的邏輯規則在驗證用戶名的最大長度和密碼最大長度。
所以我的問題是,我們如何通過依賴的多層次驗證這些屬性並報告錯誤返回給用戶。
由於模型驗證錯誤並不例外,我認爲使用異常處理程序是不是在這種情況下是可行的。 –
所以,在註冊用戶的過程中,註冊系統的重點將放在用戶數據驗證上,並且在用戶登錄時,重點應放在對用戶進行身份驗證上。沒有必要檢查用戶名或密碼驗證。 –
在註冊系統中,我們必須驗證用戶名最大長度,用戶最大長度,密碼最大長度等。以確保它符合數據庫設置,因此註冊系統必須要求域模型或數據映射器進行這些驗證。我在決定服務是否必須從這些外來物體中導入驗證或讓它們驗證並冒出錯誤時猶豫不決。 –