我想知道人們認爲用Clojure編寫的REST風格的api處理錯誤的好方法是使用Ring庫。在Clojure Ring REST-like API中處理錯誤?
Paul Umbers in his Clojure RESTful API tutorial採取的一種方法是讓異常自然發生並允許它們一直冒泡到專門將異常轉換爲特定HTTP狀態代碼的中間件。
基本上,DB約束會拋出自己的具體錯誤(例如PSQLException),模型驗證器會拋出另一種類型,全部在代碼400的傘下。未知異常將被泛型異常處理程序捕獲並返回500代碼。
的一點想法:
- 我們可以做得更好?由於某些特定原因,這是錯誤的設計嗎?
- 許多人會聲稱處理泛型異常類型是不好的做法。在這裏也可以提出這樣的論點嗎?
謝謝!
好的,這是一個很好的解釋,非常感謝。我會用這種方法去看看它的長期運作情況。 – 2013-05-12 08:23:49