通常情况下,只要run()调用返回非零退出代码,Fabric就会立即退出。但是对于某些调用,这是可以预料的。例如,当PNGOut无法压缩文件时,它返回错误码2。
目前,我只能通过使用shell逻辑(do_something_that_fails || true
或do_something_that_fails || do_something_else
)来绕过此限制,但我更希望能够将逻辑保持在纯Python中(这是Fabric承诺的)。
是否有一种方法来检查错误代码并对其进行反应,而不是让Fabric恐慌和死亡?我仍然希望其他调用采用默认行为,因此通过修改环境来改变其行为似乎不是一个好选项(据我回忆,您只能使用它来告诉它警告而不是死亡)。
SystemExit
,它不是Exception
的子类,这就是为什么它通常会导致程序崩溃的原因)。请参见我的回答:https://dev59.com/Rm445IYBdhLWcg3wZJUn#25293275 - ArtOfWarfare