2013-05-01 37 views
1

最近,我一直在關於是否拋出一個錯誤的用戶輸入異常的多個參數。最佳實踐:在用戶輸入上拋出異常或使用驗證器

例如:我試圖登錄,雖然我的帳戶沒有激活。作爲面嚮對象語言的程序員,我可以通過幾種方式來處理這個問題。對於這種情況,讓我們堅持到這兩個:

  1. 從本地Service引發自定義Exception具有代表性的方式,延長Exception。在處理用戶輸入的class中捕獲此內容。
  2. 使用Validator致電當地Service來檢查該帳戶是否登錄。

我的目標,許多人一樣,一個Exception代表了程序中的錯誤。例如。數據庫無法訪問,解析數據時出錯。

許多其他人的願景以及未激活登錄的情況在任何用例中都不是成功的情況,因此會失敗。這不應該發生,值得投擲Exception

就我個人而言,我會處理這種問題的Validator,堅持到Exception s只是在程序中的錯誤。不過,我想就哪種情況更受歡迎得到一個有建設性的答案。如有可能,請參閱任何文檔。我使用Java,雖然這個問題不限於任何語言(只要它是OO我猜)。

+2

惡意的用戶輸入是*不*一個特例,所以,不,你不應該使用這個例外。 – PeeHaa 2013-05-01 09:16:30

+0

這也是我的願景,儘管我不確定這是否被廣泛稱爲良好做法。因此,這個問題。 – Aquillo 2013-05-01 09:17:44

+0

因此,我的評論:-) – PeeHaa 2013-05-01 09:19:07

回答