從設計角度來看,處理程序員定義的用戶非法輸入的最佳方法是什麼?設計:如何使用掃描儀處理非法控制檯輸入?
例如:我要求用戶輸入數量,但他輸入「fewfiejfjw」。
我應該自定義異常嗎?在這種情況下是否存在一個普遍接受的例外情況?或者我應該說
if(!in.next().matches("\b\d+\b"){
System.out.print("Try again");
//..code to repeat method goes here
}
感謝您的任何幫助。
從設計角度來看,處理程序員定義的用戶非法輸入的最佳方法是什麼?設計:如何使用掃描儀處理非法控制檯輸入?
例如:我要求用戶輸入數量,但他輸入「fewfiejfjw」。
我應該自定義異常嗎?在這種情況下是否存在一個普遍接受的例外情況?或者我應該說
if(!in.next().matches("\b\d+\b"){
System.out.print("Try again");
//..code to repeat method goes here
}
感謝您的任何幫助。
我不認爲你應該拋出異常。您應該處理輸入並顯示錯誤並要求用戶再次嘗試。沒有理由停止申請。
Scanner
有一類方法用於檢查下一個標記是否是一個有效整數等。例如,請參閱hasNextInt()
。在致電nextInt()
之前調用此方法。
處理無效輸入的最佳方法是什麼取決於您的應用程序。我想讓用戶再次輸入這個值並不是不合理的(當然,跳過無效標記以避免創建無限循環)。