我們有一個很好的REST API。我們正在重構並決定如何在API內部處理錯誤。在內部使用Java異常來處理REST API用戶錯誤?
例如,用戶需要指定應該取值爲「1984」,「Crash」或「Avatar」的「movie」url參數。首先我們檢查一下它是否有一個有效的值。
如果電影參數無效,最佳方法是什麼?從內部的方法之一
- 返回NULL併爲您在主API調用方法
- 空從主API方法
我的內部方法和捕獲異常拋出一個異常認爲這會使我們的代碼更具可讀性和優雅性來使用異常。但是,我們不情願,因爲我們可能因爲用戶API輸入錯誤而拋出許多異常,所以我們的代碼可能是完美的。這似乎不是正確使用例外。如果存在異常情況下的性能損失嚴重,這對於需要收集堆棧跟蹤等是有意義的,那麼當我們需要做的只是告訴用戶參數錯誤時,我們不必要地花費資源。
這些是REST API方法,所以我們不會向API的用戶宣傳異常,我們也不希望即使可能。
那麼這裏最好的做法是什麼?使用醜陋的空值或使用java的異常機制?
當用戶通過電影中的參數「是無效的」,這是否代表了一個錯誤的用戶已經做出,或者是它只是一個搜索小姐? – 2010-04-25 21:33:32