在捕獲例外時,應該盡可能指定特定的例外,而不是只使用 except 陳述句,
比如說,except 陳述句會捕獲 KeyboardInterrupt 和 SystemExit 例外,但 KeyboardInterrupt 可能是我們通過 Ctrl + C 主動觸發的,顯然是不希望被捕獲的,
這樣做會影響我們對例外的判斷,
如果實在不知道是什么例外,至少要這樣使用:except Exception,
再舉一個例子:
try:
user = User.objects.get(pk=user_id)
user.send_mail('Hello world')
except:
logger.error('An error occurred!')
這樣捕獲例外顯然是不好的,應該采用下面這樣的方式進行優化,
try:
user = User.objects.get(pk=user_id)
user.send_mail('Hello world')
except User.DoesNotExist:
logger.error('The user does not exist with that ID')
推薦閱讀:
- 計算機經典書籍
- 技術博客: 硬核后端開發技術干貨,內容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等,
- Go 程式員: Go 學習路線圖,包括基礎專欄,進階專欄,原始碼閱讀,實戰開發,面試刷題,必讀書單等一系列資源,
- 面試題匯總: 包括 Python、Go、Redis、MySQL、Kafka、資料結構、演算法、編程、網路等各種常考題,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/439141.html
標籤:Python
上一篇:Flask 自建擴展
