目的
測試使用者、食物記錄1~4的功能 , 看有沒有錯誤地方。
在使用者、食物記錄那裡 , 輸錯就回到當前欄位。
1.使用者
*註冊:
只要輸入錯 , 就會回到那個欄位。
先在while外面宣告name , while目的就是為了輸錯能回到當前欄位。
if(!name.isEmpty()) break : 當使用者輸入不是空的 , 就跳出迴圈 , 繼續下 一步。
name、passwordInput、age、gender、height、weight同上。
if(!goal.isEmpty() && goal.matches([\u4e00-\u9fa5]+ ") : matches是String類別的方法 , 用來檢查是否符合給定的正規表達式。後面接的是只能打中文的表達式。
結果:
*登入:
姓名跟密碼跟上面一樣改法。
結果:
2.食物記錄
*新增食物記錄 :
因為後面需要將參數放入 , 所以不能在個別的while前宣告。
userId、calories、protein、fat、carb、quantity新放了一個try-catch接不是輸入數字的錯誤 , 前面都加上while(true)。
這裡的重複部分不貼圖片 , 改名稱就好
date :在try裡面加break。
在選擇繼續新增那 , 新增return回到case 1。
結果:
*查詢
最外面while是為了是否繼續查詢的功能。
userId跟上面一樣。
新增catch(DateTimeParseException)接日期格式的錯誤
在查詢的時候可能會出錯 , 所以List< FoodLog >前加catch。
結果 :
*更新
foodId跟UserId同樣寫法 。
結果 :
*刪除
userId 、 foodId 、 date跟前面一樣。
只要有用到資料庫都是這個錯誤處理。
結果: