Re: [翻譯] Google 建議的 Python 風格指南 4

看板Python作者 (←這人是超級笨蛋)時間12年前 (2013/04/27 16:19), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
注釋一下 ※ 引述《sandwichC (沒回應=掛站)》之銘言: : 原文網址:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html : 的 exception。因此,應儘可能避免使用 catch-all except。少數可以使用 : catch-all except 的情形有: re-raising exception (編案:re-raise 是一種 : python 常用的手法用來重現剛拋出的異常)、或者你已經在最外層的程式中而想要 : 補捉所有你沒考慮到的 exception 以印出錯誤的細節。 Re-raising try: something() except: print 'Something bad just happened.' raise 這邊的 raise 就是所謂的 re-raise 代表的意思是「我剛剛抓到的 exception 不管它是什麼麻煩照樣繼續丟出去」 上面程式碼的意義與下面的版本基本相同: try: something() except Exception as e: print 'Something bad just happened.' raise e 不過方便很多 : 讓 try/except 區塊中的程式碼儘量少。try 區塊中的程式碼愈長,其中愈有可能 : 出現意料之外的錯誤,這些意外的錯誤可能因為 except 區塊而被隱藏。 : 用 finally 來處理無論意外發生與否都應該要執行的程式片段。這常被用來清理資 : 源,如:關閉檔案。 這裡有一個沒有提到的東西, 可以用來改善 try/except 造成的流程問題 Python 的 try/except block 還有一個額外的元件 else try: do_something() except: do_this_if_something_failed() else: do_this_if_something_succeeded_but_dont_catch_exceptions_in_this() finally: always_do_this() 善用 else 會讓你省去很多很可怕的嵌套 try-blocks 如果你一嵌下去程式就會變成火星流程了 一旦你感覺自己需要在 try 裡面(或外面)又加一個 try 請思考有沒有可能改用 else -- ╱ ̄ ̄ ̄╲ ▏◢█◣ 成龍表示: 是喔... ′/ ‵ ╰╯ ψQSWEET █◤ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.81.146

04/29 18:33, , 1F
多謝提醒阿~~
04/29 18:33, 1F
文章代碼(AID): #1HU_fs88 (Python)
文章代碼(AID): #1HU_fs88 (Python)