prefer IllegalArgumentException over slingshot

Since we want this error to simply get displayed to a user, it is
preferrable to simply throw an IllegalArgumentException.
add test case for 'get-service-fn' error handling