为了账号安全,请及时绑定邮箱和手机立即绑定

Python 引发异常的约定

Python 引发异常的约定

SMILET 2023-09-26 17:27:53
我很难找到一个好的数据源来了解如何处理和引发异常。辅助函数或类方法是否应该处理引发的问题,或者调用者处理捕获异常的逻辑是否是正常约定?我们是否在两个地方都这样做并一直跟踪堆栈跟踪?选项A:def change_permissions(file):    os.chmod(file, 0o755)try:    change_permissions('/Users/user/Documents/file.txt')except Exception:    print('do something with this')选项B:def change_permissions(file):    try:        os.chmod(file, 0o755)    except EnvironmentError:        print('do something with this')change_permissions('/Users/user/Documents/file.txt')
查看完整描述

1 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

不要将异常捕获为 e

捕获 Exception 的问题与类型继承有关(因此,插曲),因为我们不仅会捕获应用程序中的所有自定义异常,还会捕获一大堆 Python 内置异常,包括一些您可能不希望抛出的异常离开。你需要特别选择,因为所以选项 B 是最好的选择

其他最佳实践

有一些在 python 中处理异常的最佳实践,这一切都与你有关。

  • 切勿使用异常进行流量控制

  • 不要暴露异常的实现细节

  • 记录代码抛出的异常

  • 了解我们在哪里需要断言和异常。

查看完整回答
反对 回复 2023-09-26
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信