0
錯誤回調我正在用Twisted的ProcessProtocol運行一個命令。扭曲。在spawnProcess的processExited
我使用的文件支架和我有幾個事件,如inConnectionLost,connectionMade等
但是,當過程結束時觸發這個事件:
def processExited(self, reason):
print 'processExited, status %d' % (reason.value.exitCode,)
if reason.value.exitCode == 0:
print 'SUCCESS!!!'
else:
print 'ERROR!!!'
raise RuntimeError, 'some custom error message'
正如你可以看到,我想將錯誤提升到更高級別。 我包裝用的命令調用推遲這樣的:
def success_pipeline(success):
log.debug('The pipeline has finished correctly.')
def failure_pipeline(error, command):
log.debug('The pipeline failed...')
command = CommandProtocol()
reactor.spawnProcess(command, application_bin, command_arguments, {})
d = Deferred()
d.addCallback(success_pipeline)
d.addErrback(failure_pipeline, command)
return d
但是,儘管命令失敗(我手動輸入了錯誤的參數),它總是會到成功回調。 reason.value.exitCode是1,所以在bash中確認失敗。
那麼如何捕獲errback來自定義處理失敗呢?