try:
driver = launch_browser()
except:
print "Browser launch failed"
driver.get("http://www.example.com/")
上面的最后一行由PyCharm标记,出现以下问题:
本地变量"驱动程序"可能在作业之前被引用
然而,这样的事情会让错误消失:
driver = None
try:
driver = launch_browser()
except:
print "Browser launch failed"
driver.get("http://www.example.com/")
有没有办法设置PyCharm,以便它可以看到try块内的分配?
其次,PyCharm可以根据函数的返回值(在这种情况下为launch_browser()
)计算出类型,如果它有docstrings吗?
try
区内的任务而不必求助于创可贴的问题。
编辑1:
return
块中的except:
修复了与PyCharm有关的问题。我正在研究其他事情并无意中将其评论出来。证明连续编码16小时是一个非常糟糕的主意......
答案 0 :(得分:3)
如果launch_browser()
失败,您的代码将在driver.get("http://www.example.com/")
行出错。 PyCharm让你知道这一点。
避免这种情况的唯一方法是不执行except
以下的任何内容,例如在其中抛出异常,或者将driver
内的所有内容放在else
块中,只有在没有异常被捕获时才会运行。 E.g。
try:
driver = launch_browser()
except:
print "Browser launch failed"
else:
driver.get("http://www.example.com/")