[英]Should user input verification be done at class level or UI level?
假設您有一個控制台應用程序,具有:
Main.java
和ClassA.java
您的主類包含用於運行程序的public static void main(String[] args)
方法,並且它使用用戶輸入作為參數來調用ClassA
方法。
在將參數發送給ClassA
方法之前,您是否將用戶輸入驗證放入main
方法中?
要么
您是否將用戶輸入驗證放入ClassA
方法中,該方法將中繼回一條消息,指示輸入是否成功? 還是拋出異常?
即當給定無效輸入時, Integer.Parse(...)
引發NumberFormatException
。
您可能想在classA中拋出有意義的異常,然后讓您的main方法決定是否/如何處理這些異常。 當您重用A類時,新的調用者可能要做出其他決定。
我建議使用CleanCode一書(Robert C. Martin)的“錯誤處理”一章。 它說例如“定義正常流程”,“使用異常而不是返回碼”,“將業務邏輯和錯誤處理分開”。
在某些情況下,獲得快速反饋很重要...不要等待兩個小時才能完成計算並獲得90%的異常。 在其他情況下,獲取詳細反饋更為重要。 另請參閱數據驗證:快速驗證失敗,早期驗證失敗與完全驗證
檢查是否容易閱讀代碼並理解正常流程。 每個函數只能做一個事情/為一個抽象層次建模。 異常處理是一級ob抽象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.