gpt4 book ai didi

Python 用户定义的异常来处理特定的 OSError 代码

转载 作者:行者123 更新时间:2023-11-28 20:40:44 26 4
gpt4 key购买 nike

我想像这样处理特定的 OSError 代码:

try:
os.scandir()
except OSPermissionError as error:
# Only catch errno.EACCES, errno.EPERM
handle_permission_error()
except OSFileNotFoundError as error:
# Only catch errno.ENOENT
handle_FileNotFoundError_error()

这可以用 python 完成吗?

最佳答案

os.scandir() 不会抛出这些类型的异常。它提出了 OSError异常(exception)。但是,它确实允许您确定发生的错误类型。

有一个large number of possible errors这可能是 OSError 的一部分。您可以使用这些来提高自己的 custom exceptions然后在堆栈中进一步处理它们。

class OSPermissionError(Exception):
pass

class OSFileNotFoundError(Exception):
pass

try:
os.scandir()
except OSError as error:
# Not found
if error.errno == errno.ENOENT:
raise OSFileNotFoundError()
# Permissions Error
elif error.errno in [errno.EPERM, errno.EACCES]:
raise OSPermissionError()
else:
raise

关于Python 用户定义的异常来处理特定的 OSError 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35179317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com