【问题标题】:Python semantics of returning in a try block在 try 块中返回的 Python 语义
【发布时间】:2013-09-16 21:46:04
【问题描述】:

我的代码中有以下代码块:

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 解释这个块的方式相匹配?

【问题讨论】:

  • functionRelevantToTheseFolders() 中很可能出现错误。查看该函数的代码。

标签: python try-catch semantics


【解决方案1】:

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

要解决此问题并获得正确的返回值,首先要弄清楚functionRelevantToTheseFolders() 引发异常的原因。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-25
  • 2014-07-16
相关资源
最近更新 更多