請教python編碼風格和異常處理問題
問題描述
請教各位個問題,編寫web應用注冊模塊,如下面這段代碼,服務端需要檢測用戶的傳遞的參數(shù)。下面幾種寫法哪個更好,異常處理方式是否正確,或者各位是否有更好的方式呢
def check_args(account, passwd, birthday, name): # 第一種寫法 if account == ’’ or not isinstance(account, str):raise ValueError if passwd == ’’ or not isinstance(passwd, str):raise ValueError if birthday == ’’ or not isinstance(birthday, str):raise ValueError if name == ’’ or not isinstance(name, str):raise ValueError # 第二種寫法 if (account == ’’ or not isinstance(account, str)) or (passwd == ’’ or not isinstance(passwd, str)) or (birthday == ’’ or not isinstance(birthday, str)) or (name == ’’ or not isinstance(name, str)):raise ValueError return Nonedef user_register(form): account = form['account'] passwd = form['passwd'] birthday = form['birthday'] name = form['name'] # 異常放在這一層,但在main函數(shù)調(diào)用 user_register 如何檢測是否成功呢 # 是當前異常繼續(xù)向外拋,還是通過返回值 try:check_args(account, passwd, birthday, name)insertUserInfo(account, passwd, birthday, name) except ValueError:pass except MySQLError:pass except Exception:pass
問題解答
回答1:既然是web應用,你應該把這些驗證抽象出來,自己寫驗證模塊或者用別人的驗證模塊
回答2:為什么不樸素的返回一個True or False呢,異常一般是指程序出現(xiàn)了錯誤,但注冊信息不合法并不帶表程序出了錯,所以用條件判斷返回真假值就可以了。另外一般來說表單的合法判斷在前端處理比較好。
相關(guān)文章:
1. 運行python程序時出現(xiàn)“應用程序發(fā)生異常”的內(nèi)存錯誤?2. macos - 無法source activate python273. css3 讓圖片變成灰色(filter),但針對IE11瀏覽器無效4. java - butterknife怎么綁定多個view5. java - 同步/異步與阻塞/非阻塞之間的差異具體是什么?6. android - Genymotion 模擬器可以做屏幕適配檢測嗎?7. html5 - 前端面試碰到了一個緩存數(shù)據(jù)的問題,來論壇上請教一下8. javascript - 打算寫一個c++的node圖像處理模塊,有沒有推薦的c++圖片處理庫?9. html - vue里面:src在IE(9-11)下不顯示圖片10. 我在導入模板資源時遇到無法顯示的問題,請老師解答下

網(wǎng)公網(wǎng)安備