我很难找到一个好的数据源来了解如何处理和引发异常。辅助函数或类方法是否应该处理引发的问题,或者调用者处理捕获异常的逻辑是否是正常约定?我们是否在两个地方都这样做并一直跟踪堆栈跟踪?选项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 回答
![?](http://img1.sycdn.imooc.com/545866c40001561502200220-100-100.jpg)
白板的微信
TA贡献1883条经验 获得超3个赞
不要将异常捕获为 e
捕获 Exception 的问题与类型继承有关(因此,插曲),因为我们不仅会捕获应用程序中的所有自定义异常,还会捕获一大堆 Python 内置异常,包括一些您可能不希望抛出的异常离开。你需要特别选择,因为所以选项 B 是最好的选择
其他最佳实践
有一些在 python 中处理异常的最佳实践,这一切都与你有关。
切勿使用异常进行流量控制
不要暴露异常的实现细节
记录代码抛出的异常
了解我们在哪里需要断言和异常。
添加回答
举报
0/150
提交
取消