在“ except”块中执行操作是否是一种好的编码习惯?

时间:2019-03-24 18:31:00

标签: python try-except

如果“ try”块中的代码失败,这是Python方式纠正“ except”块中的错误吗?

我遇到过两种代码片段:

import os
import random

workdir = str(random.randint(10**11, 10**12-1))
try:
    os.mkdir(workdir)
except FileExistsError:
    workdir = str(random.randint(10**11, 10**12-1))
    os.mkdir(workdir)
print('Created directory ' + workdir)
os.chdir(workdir)
print('Changed to directory ' + os.getcwd())
import os
import random

workdir = str(random.randint(10**11, 10**12-1))
try:
    os.mkdir(workdir)
    print("Directory " , workdir ,  " created") 
except FileExistsError:
    print("Directory " , workdir,  " already exists")

一个人优先于另一个人吗?

1 个答案:

答案 0 :(得分:1)

使用异常实际上是一种python方式,有一个称为EAFP的原则,它代表“比许可更容易获得宽恕”。您可以详细了解here

第二个代码段看起来比第一个更好,因为仍有机会生成相同的数字。