我正在構建一種接收傳入電子郵件並處理電子郵件的方法。一路上有很多事情可能會阻止電子郵件成功處理。錯誤的回覆地址,錯誤的地址,空的郵件正文等。Rails 3 - 如何處理複雜的開關語句/如果語句
該代碼充滿了Switch語句(case/when/end)和If語句。我想學習一個更智能,更乾淨的方式來做到這一點。另外,一種可以跟蹤錯誤的方法,並且在最後有一個位置,它通過錯誤向用戶發送電子郵件。像這樣的事情可能與鐵軌?
@error = []
Case XXX
when xxxx
if XXXXX
else
@error = 'You don't have permission to reply to the xxxxx'
end
else
@error = 'Unfamilar XXXX'
end
然後東西在最後像...
If @errors.count > 0
Send the user an email letting them know what went wrong
else
do nothing
end
感謝這裏的幫助。如果你知道任何其他教程會教我如何編寫像上面這樣聰明的邏輯,那會很棒。現在我有案子/如果陳述要3層深入,很難保持直線。
謝謝
我非常喜歡例外。在大多數情況下,該方法的隱式退出正是您想要的。 – aceofspades 2010-12-12 18:55:22
只有在處理真正的異常時才使用異常。如果它是預期的流量,則不要使用例外。例如:用戶輸入的任何數據通常都是錯誤的,絕對不應該有例外處理。清理代碼的真正方法是將其分成小塊邏輯塊(方法和類)。嵌套case和ifs通常是一個設計問題。在這種情況下使用例外只是一個繃帶,但不是真正的解決方案。 – iain 2010-12-12 19:44:22
如果您有一個複雜的案例,最好將其抽象爲驗證器函數而不是使用異常。權衡你的選擇。 – moeffju 2010-12-12 19:54:17