Pycharm try 块内无法识别变量赋值

Pycharm variable assignment not recognized inside try block

try:
    driver = launch_browser()
except:
    print "Browser launch failed"

driver.get("http://www.example.com/")

上面的最后一行被 PyCharm 标记为以下问题:

Local variable "driver" might be referenced before assignment

但是,类似这样的事情会使错误消失:

driver = None
try:
    driver = launch_browser()
except:
    print "Browser launch failed"

driver.get("http://www.example.com/")

有没有办法设置 PyCharm 以便它可以看到 try 块中的赋值?

其次,如果它有文档字符串,PyCharm 能否根据函数的 return 值找出类型(在本例中为 launch_browser())?

顺便说一句,代码在这两种情况下都可以正常工作。只需让 PyCharm 理解 try 块内的赋值,而无需求助于创可贴。

编辑 1:

except: 块中的 return 解决了 PyCharm 所关注的问题。我正在做别的事情,无意中把它注释掉了。证明连续 16 小时编码是一个非常糟糕的主意......

如果 launch_browser() 失败,您的代码将在 driver.get("http://www.example.com/") 行出错。 PyCharm 让你知道这一点。

避免这种情况的唯一方法是不执行 except 以下的任何操作,例如在其中抛出一个异常,或者将所有依赖于 driver 的东西放在一个 else 块中,如果没有捕获到异常,它只会 运行 。例如

try:
    driver = launch_browser()
except:
    print "Browser launch failed"
else:
    driver.get("http://www.example.com/")