-
1 # 這輩子就python了
-
2 # 一粒塵土一個世界
我覺得主要還是要看你自己的需求是什麼,如果這個異常不重要,完全可以忽略的話,又不想程式到此結束的話,就可以直接丟擲異常。如果是在實際工作中,尤其是商業運用上,建議是設定特定的錯誤碼,根據這個錯誤碼,你就能夠快速地知道是什麼錯誤,什麼原因引起的。
-
3 # 程式設計師小助手
結論:不說那個好,丟擲幾個例子,題主您看看,哪個更好。
前言就跟老師講課一樣,直接給說一個定理,一個結論,太抽象,我都不知道這是什麼呢,你就告訴我要怎麼用?
所以本文用程式碼樣例,告訴你哪個才是更好的選擇。
手動控制異常python的異常資訊,可以手動顯式丟擲,像下面這樣。
使用raise關鍵字,丟擲ValueError異常。那麼執行後就可以異常中斷。
使用try - catch 結構捕捉異常資訊,可以寫入日誌,或控制檯列印。
這樣不會中斷程式,繼續執行,在線上的程式碼,尤其如此。
上圖示例,一個沒有被捕捉到的異常,中斷了程式執行。
最佳實踐如何正確而優雅無害地控制丟擲異常呢?上段我們使用的兩種方式,手動修改了execption message內容,這樣看起來錯誤資訊很直觀,可是不利於排查故障點。
所以最佳實踐上,可以從這些點出發。
1 - 不要修改異常資訊
將程式的錯誤資訊,捕捉到之後,輸出到日誌檔案。
2 - 使用sys.exc_info()保留堆疊追蹤和錯誤值
如圖,sys.exec_info()返回錯誤型別,值,和堆疊資訊,方便定位。執行起來大概是這樣的。
不過要注意的是 python2和python3略有區別。python3你可以使用異常資訊鏈式追蹤。
類似上述方式。
一個長列表:python有哪些異常下面列出了python內29個異常的詳細情況。
這些都是在程式執行中可能丟擲的,也是程式設計師可以在程式中手動丟擲的異常型別。
結語一般寫小型的指令碼處理函式,可以手動控制異常,這也是python的常見做法。
而大型的框架,一般對異常型別做了深層次的封裝,不同型別的庫,丟擲不同的異常。
面向物件的寫法,可以很容易用繼承的方式處理異常。
回覆列表
如果是自己用,那無所謂,自己說改就可以改。要是交付給別人,還是約定返回值吧,到時候人家過來問,你一看,就知道哪裡出問題了