python – 使用不同错误代码的异常处理

python – 使用不同错误代码的异常处理,第1张

概述我想知道如何处理具有相同“类型”的不同异常.我正在尝试使用一些代码来创建目录: os.mkdir(target_dir_name) 我知道这可能由于各种原因而失败,例如,如果目录已经存在: OSError: [Errno 17] File exists: 或者如果没有创建新目录的权限: OSError: [Errno 13] Permission denied: 我想根据具体的失败原因定制我的错误 我想知道如何处理具有相同“类型”的不同异常.我正在尝试使用一些代码来创建目录:

os.mkdir(target_dir_name)

我知道这可能由于各种原因而失败,例如,如果目录已经存在:

OSError: [Errno 17] file exists:

或者如果没有创建新目录的权限:

OSError: [Errno 13] Permission denIEd:

我想根据具体的失败原因定制我的错误消息,所以我想出了以下代码:

try:  os.mkdir(target_dir_name)except OSError as e:  if e.errno == 17:    print "Warning: Directory %s already exists,executing a rebuild" % (target_dir_name)  elif e.errno == 13:    sys.exit("Error: Directory "+target_dir_name+" cannot be created incorrect permissions")

但是我想做一些不那么硬编码的事情.是否有Pythonic方式可以更新我的子故障检查?

解决方法 我发现的唯一信息……我想这是我最好的答案:

使用errno module,我至少可以将当前代码重写为:

import errno#...except OSError as e:  if e.errno == errno.EEXIST:    print "Warning: Directory %s already exists,e..."  elif e.errno == errno.EACCESS:    sys.exit("Error: Directory "+target_dir_name+"..."

如果我升级到python 3.2,那就更好了:

except fileExistsError:  print ("Warning: Directory %s already exists,e...")except PermissionError:  sys.exit("Error: Directory "+target_dir_name+"...")

似乎我可以使用sys.version_info.major和minor来做一些奇特的事情,以确保它至少也是3.2.

希望有更好的东西出现……

总结

以上是内存溢出为你收集整理的python – 使用不同错误代码的异常处理全部内容,希望文章能够帮你解决python – 使用不同错误代码的异常处理所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存