0

我的代码中有以下块:

folder = 'validname2'
try:
    if folder == 'validname1':
        os.chdir('validname1')
        return functionRelevantToThisFolder()
    else
        if folder == 'validname2':
            os.chdir('validname2')
        elif folder == 'validname3':
            os.chdir('validname3')
        print("right before correct function call")
        return functionRelevantToTheseFolders()
except OSError as e:
    return "error message string"

def functionRelevantToTheseFolders():
    return "should say this"

调用第二次返回之前的打印。但是,返回值始终是“错误消息字符串”。

看来我对如何运行这个块的看法与 Python 解释它的方式不同。我应该如何重组我的代码,使其与 Python 解释这个块的方式相匹配?

4

1 回答 1

1

发生的事情很简单,functionRelevantToTheseFolders()就是引发OSError,然后被您的 except 块捕获,从而返回“错误消息字符串”。

要解决这个问题并获得正确的返回值,首先要弄清楚为什么functionRelevantToTheseFolders()会引发异常。

于 2013-09-16T21:49:23.400 回答