Throw proper exceptions for errors instead of user_error().