It depends on the kind of user experience you are looking for.
If you throw an exception, Web API would short-circuit the processing of request and returns a 500 Internal Server
response (with or without the exception details based on your HttpConfiguration.IncludeErrorDetailPolicy
settings).
If you log errors via the IFormatterLogger.LogError
(you can return null in this case), then the request processing is not short-circuited and a user would need to check for the ModelState
validity to figure out if there are any errors.