python - 有没有一种很好的方法来处理 Python 中的异常?

标签 python exception

我有一堆看起来与此类似的代码:

                try:
                    auth = page.ItemAttributes.Author
                except:
                        try:
                            auth = page.ItemAttributes.Creator
                        except:
                                auth = None

有没有更好的方法来写出这个逻辑?这让我的代码读起来真的很痛苦。我以为 try..finally 会起作用,但我假设错了

最佳答案

您可以使用 hasattr 来避免 try/except block :

auth = None
for attrname in ['Author', 'Creator']:
    if hasattr(page.ItemAttributes, attrname):
        auth = getattr(page.ItemAttributes, attrname)
        break

另一种编写上述代码的方法是使用 Python for 循环的 else 子句:

for attrname in ['Author', 'Creator']:
    if hasattr(page.ItemAttributes, attrname):
        auth = getattr(page.ItemAttributes, attrname)
        break
else:
    auth = None

关于python - 有没有一种很好的方法来处理 Python 中的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3114246/

相关文章:

python - 自动从谷歌下载图片

Python/Pygame字符快速闪烁

java - 向上转换时捕获错误的异常

exception - JavaFX对话框异常

Java 文件 IO - 文件必须有空行才能被正确读取

python - 如何使用 pywinauto 控制 IE 浏览器

python - 导入 PyQt5.QtWidgets 模块的最佳实践

sql-server - 如何从 PyMSSQL 捕获异常

c++ - 堆栈展开后智能指针中的对象不会被删除

Python sqlite3选择不重复字段