我们有一个很好的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