我应该何时在Python中使用Try-Except语句?

akr*_*amo 3 python error-handling exception

例如,如果我试图打开一个文件,我不能简单地检查是否os.path.exists(myfile)而不是使用try/except.我认为我不应该依赖的os.path.exists(myfile)原因是,文件可能无法打开的原因可能有很多.

这是为什么try/except应该使用错误处理使用的逻辑?

是否有关于何时在Python中使用异常的一般准则.

orl*_*rlp 5

比赛条件.

在检查文件是否存在与执行操作之间的时间内,该文件可能已被删除,编辑,重命名等...

最重要的是,异常将为您提供操作系统错误代码,使您可以获得操作失败的更多相关原因.

最后,它被认为是Pythonic要求宽恕,而不是要求许可.


Ale*_*der 4

通常,当您处理超出您可以影响的参数范围的事情时,您会使用 try/ except 。

在脚本中,您可以检查变量的类型、列表的长度等,并且您可以确定结果是足够的,因为您是唯一处理这些对象的人。然而,一旦您处理文件系统中的文件或连接到远程主机等,您就无法再影响或检查所有参数,也无法确保检查结果保持有效。

如你所说,

  • 该文件可能存在,但您没有访问权限
  • 您可能能够 ping 通主机地址,但连接被拒绝

有太多因素可能会出错,无法单独检查它们,而且,如果这样做,它们可能仍然会发生变化,直到您实际执行命令为止。

通过 try/error,您通常可以捕获每个异常并单独处理最重要的错误。即使测试一开始成功但在开始运行命令后失败,也要确保错误得到处理。