sách gpt4 ai đã đi

Ngoại lệ Python - Bắt tất cả các ngoại lệ ngoại trừ những ngoại lệ mong đợi

In lại 作者:行者123 更新时间:2023-12-05 05:13:31 hai mươi bốn 4
mua khóa gpt4 Nike

我正在使用 Python 编写一个简单的自动化脚本,它可能会在多个位置引发异常。在他们每个人中,我都想记录一条特定的消息并退出程序。为此,我在捕获异常并处理它(执行特定的日志记录操作等)后引发 SystemExit。

在 main 的顶层调用中,我执行以下操作:

if __name__ == "__main__":
thử:
chủ yếu()
except SystemExit: # handled exception
sys.exit(1)
except: # any unhandled exception
logging.error('Unexpected error: ', exc_info=True)
sys.exit(2)

然而,使用裸 except 是不受欢迎的。是否使用“异常树”,其中我使用 bare except 以非标准方式指定“除了我处理的异常之外的任何东西”?有没有更好的方法来实现这一目标?我仍然想记录这些未处理的异常,即使它们没有被处理。

编辑:引发 SystemExit 以注意已处理异常 - 无论我的情况是什么异常,我总是想停止运行脚本,因为任何失败都应该导致绝对失败。

我问这个的主要原因是 PEP8 似乎考虑使用 bare except 作为错误,即使我可以使用 except BaseException,它应该只是语法差异。一种方式比另一种方式更标准,还是有另一种标准途径来实现这一点?

1 Câu trả lời

裸异常会捕获您不想捕获的内容,例如 GeneratorExit。这样做:

except Exception as details:
logging.error('Unexpected error: {0}'.format(details))

关于Python 异常 - 捕获除预期之外的所有异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53591475/

hai mươi bốn 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com