sometimes all you want to do is run a function and timeout. allow the user to provide an error-return to be returned. if none provided, raise the standard exceptions.