def got_failure(self, state, failure): error_handler(self, failure) msg = message.ResponseMessage() msg.payload['succeed'] = False msg.payload['exception'] = type(failure.value) msg.payload['message'] = failure.getErrorMessage() state.medium.reply(msg)
def _error_handler(self, f): if f.check(FiberCancelled): self._terminate(ProtocolFailed("Fiber was cancelled because " "the state of the medium changed. This happens " "when constructing a fiber with a canceller.")) error_handler(self, f) self._set_state(self.error_state) self._terminate(f)
def _error_handler(self, f): # FIXME: This has been commented out, because I have a feeling that # this code cannot be accessed. # if f.check(FiberCancelled): # self._terminate(ProtocolFailed("Fiber was cancelled because " # "the state of the medium changed. This happens " # "when constructing a fiber with a canceller.")) if f.check(defer.CancelledError): # this is what happens when the call is cancelled by the # _call() method, just swallow it pass else: error_handler(self, f) self._set_state(self.error_state) self._terminate(f)
def _error_handler(self, f): error_handler(self, f) self.send_output(f.getErrorMessage()) self.on_finish()
def _call(self, method, *args, **kwargs): '''Call the method, wrap it in Deferred and bind error handler''' d = defer.maybeDeferred(method, *args, **kwargs) d.addErrback(lambda f: error_handler(self, f)) return d
def _error_handler(self, fail): error_handler(self, fail) return FailResponse(success=False, failure=fail)