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

时间:2015-11-15 04:13:49

标签: python exception error-handling

E.g。如果我尝试打开文件,我不能简单地检查是否os.path.exists(myfile)而不是try/except。我认为我不应该依赖os.path.exists(myfile)的原因的答案是,可能存在许多其他原因导致文件无法打开。

  

这是使用try/except进行错误处理的原因吗?

     

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

2 个答案:

答案 0 :(得分:5)

比赛条件。

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

除此之外,异常将为您提供操作系统错误代码,以便您了解操作失败的更多相关原因。

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

答案 1 :(得分:4)

一般来说,当你处理超出你可以影响的参数的东西时,你会使用try / except。

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

正如你所说,

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

有太多因素可能会出错,无法单独检查它们,如果你这样做,它们可能会一直改变,直到你真正执行命令为止。

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

相关问题