Use Java exceptions internally for REST API user errors?

Posted by user303396 on Stack Overflow See other posts from Stack Overflow or by user303396
Published on 2010-04-25T21:29:32Z Indexed on 2010/04/25 21:33 UTC
Read the original article Hit count: 510

Filed under:
|
|

We have a REST API that works great. We're refactoring and deciding how to internally handle errors by the users of our API.

For example the user needs to specify the "movie" url parameter which should take the value of "1984", "Crash", or "Avatar". First we check to see if it has a valid value.

What would be the best approach if the movie parameter is invalid?

  • return null from one of the internal methods and check for the null in the main API call method
  • throw an exception from the internal method and catch exceptions in the main API method

I think it would make our code more readable and elegant to use exceptions. However, we're reluctant because we'd be potentially throwing many exceptions because of user API input errors, our code could be perfect. This doesn't seem to be the proper use of exceptions. If there are heavy performance penalties with exceptions, which would make sense with stack traces needing to be collected, etc., then we're unnecessarily spending resources when all we need to do is tell the user the parameter is wrong.

These are REST API methods, so we're not propogating the exceptions to the users of the API, nor would we want to even if possible.

So what's the best practice here? Use ugly nulls or use java's exception mechanism?

© Stack Overflow or respective owner

Related posts about api

Related posts about null