如何在调用函数中捕获被调用函数的异常?

时间:2017-01-09 23:42:50

标签: python ssh try-catch

请看一下伪代码。 我无法在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。因此,在异常块中处理它并进一步处理它。

0 个答案:

没有答案