※ 本文為 nakts0123.bbs. 轉寄自 ptt.cc 更新時間: 2013-05-05 19:09:41
看板 Python
作者 標題 [翻譯] Google 建議的 Python 風格指南 4
時間 Sat Apr 27 23:08:01 2013
原文網址:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html
* Exceptions
Exception 應小心使用。
釋義:
Exception 用來中斷正常的程式邏輯,以應付錯誤及非預期的狀況。
優點:
程式主體不會被處理錯誤的程式所攪亂。當狀況發生時,exception 能夠直接從深
層的程式中直接跳出。如:從 n 層的函式中直接返回,而不需要一層一層地處理
回傳的錯誤代碼。
層的程式中直接跳出。如:從 n 層的函式中直接返回,而不需要一層一層地處理
回傳的錯誤代碼。
缺點:
整個程式的流程可能變得令人困惑。
決策:
使用 exception 必須遵守一些法則。
需要 raise exception 時,使用以下兩種格式:
raise MyException('Error message'),或者 raise Exception。
不要使用以下這幾種格式 (雖然它們目前仍是合法的格式):
raise MyException, 'Error message',或 raise 'Error message'。
module 或 package 應該要繼承內建的 exception 類別來定義自己的 exception 類
別,一個 module 的 base exception 得命名為 Error:
class Error(Exception):
pass
Python 裡的 catch-all except 會補捉所有的意外事件,包括:拼字錯誤、使用
sys.exit()、Ctrl+C 鍵盤中斷、unittest 中不符合預期的項目、及任何非預期內
的 exception。因此,應儘可能避免使用 catch-all except。少數可以使用
sys.exit()、Ctrl+C 鍵盤中斷、unittest 中不符合預期的項目、及任何非預期內
的 exception。因此,應儘可能避免使用 catch-all except。少數可以使用
catch-all except 的情形有: re-raising exception (編案:re-raise 是一種
python 常用的手法用來重現剛拋出的異常)、或者你已經在最外層的程式中而想要
補捉所有你沒考慮到的 exception 以印出錯誤的細節。
讓 try/except 區塊中的程式碼儘量少。try 區塊中的程式碼愈長,其中愈有可能
出現意料之外的錯誤,這些意外的錯誤可能因為 except 區塊而被隱藏。
用 finally 來處理無論意外發生與否都應該要執行的程式片段。這常被用來清理資
源,如:關閉檔案。
在捕捉例外時,使用 as 來取代逗點,如:
try:
raise Error
except Error as error:
pass
編案:as 的用法在較新的 python 版本才開始支援,某些 code 用逗點只是語言演
變的歷史因素。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 68.232.121.105
--
※ 同主題文章:
● 04-27 23:08 ■ [翻譯] Google 建議的 Python 風格指南 4
04-28 00:18 ■ Re: [翻譯] Google 建議的 Python 風格指南 4
※ 看板: Gabinius 文章推薦值: 0 目前人氣: 0 累積人氣: 51
作者 sandwichC 的最新發文:
- 請問各位有花旗信用卡但無該行存款的卡友 若需要繳的金額>30萬時,有建議什麼方便的繳費方式嗎? 我過去大多用花旗App輸入他行帳戶直接繳費 但金額>30萬時好像會失敗 我主要的存款在郵局, …85F 24推
- 請問一下,若股利剛破20000, 按規定繳納 2.11% 的稅, 實拿會不會低於股利略低於 20000 的人啊? 按健保署的試算: 若股利所得 20001 元,補充保費422元,故實拿19579元 若 …36F 24推 1噓
- 原文網址: Google Python Style Guide * Generators 有需要時就用 generator 釋義: 一個 generator 函式的回傳值是一個 generator 物 …1F 1推
- 原文網址: Google Python Style Guide * Default Iterators and Operators 若變數的型態支援,應優先使用預設的迭代器 (iterator) 及通 …
- Google 建議的 Python 風格指南 7 原文網址: Google Python Style Guide * list comprehension 在邏輯簡單的情況下可以使用 list com …6F 2推
點此顯示更多發文記錄
→
guest
回列表(←)
分享