update exception and ServiceException should be exposed outside