Python中断异常语句并继续

2024-10-03 17:25:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一个自动化程序的脚本。测试通过Paramiko使用SSH连接,无论出于什么原因(与系统相关),系统重新引导,这将关闭SSH连接。然后Python抛出一个错误,说连接被强制关闭。在

我希望程序在except语句中捕捉错误,然后恢复ssh连接,然后从第一次遇到错误的地方继续。在

代码太长,无法发布,但实际上我希望做以下事情:

 try:
      dotesting()
 except ParamikoError():
      restoressh()
      #here i want to break out and get back into dotesting()

我不确定这是否可能,因为“goto”不受欢迎,而且在Python中不可用。我该怎么做?在

编辑
所以我原本想做的事是不可能的。现在我将焦点转移到重新启动dotesting()内的特定步骤

^{pr2}$

Tags: 代码程序脚本paramiko系统地方错误原因
2条回答

一个非常糟糕的答案是编写程序,然后将其保存为字符串列表,其中列表中的每一项都是程序的一行。然后执行以下操作:

i =0
while i<len(program)
try: 
    eval(program[i])
    i+=1
except ParamikoError():
    pass

就像我说的,非常糟糕的解决方案,但我想不出更好的办法。在

如果不是每次都抛出异常,您应该模拟ssh接口。否则,您可以:

def stepone():
    raise AttributeError

def steptwo():
    return 1

class TestStuff(unittest.TestCase):

  def test_steps(self):
      with self.assertRaises(AttributeError):
          stepone()
      self.assertEquals(steptwo(), 1)

if __name__ == '__main__':
    unittest.main()

相关问题 更多 >