请看一下伪代码。 我无法在Scenario2中捕获异常
场景1: 的 A.py
def fun1():
try:
ssh connection
do something1
do something2
session.write(cmd1) # Execute some commands
session.write(cmd2)
session.write(cmd3)
session.write(cmd4)
except RuntimeError as err:
print err
Do something with err
Further decision making based on err
场景2: 的 B.py
def fun1():
try:
ssh connection
do something1
do something2
execute_commands(session)
except RuntimeError as err:
print err
Do something with err
Further decision making based on err
def execute_commands(session):
session.write(cmd1) # Execute some commands
session.write(cmd2)
session.write(cmd3)
session.write(cmd4)
在A.py中,只有一个功能可以完成所有任务。我知道在执行cmd1到cmd4时会抛出运行时错误。 A.py绝对正常。 在B.py中,我创建了另一个单独的函数来单独执行这些命令。但是在这里我无法捕获该运行时错误。在B.py中,当调用execute_commands()时它会挂起。它没有任何例外。 当调用execute_commands()时,如何捕获fun1()中发生的相同异常?
import SSHLibrary
session = SSHLibrary.SSHLibrary()
session.open_connection(self.ip, self.prompt)
session.login(self.username, self.password)
session.write(cmd1)
session.read_until("some pattern")
由于模式不匹配导致的Runtimerror。因此,在异常块中处理它并进一步处理它。