python異常捕獲

捕獲多個異常

當(dāng)一個代碼片段可能會拋出多個異常時荧缘,可以將異常類型放入一個元組中(必須是元組(),數(shù)組[]沒有效果),如下所示。使用as 關(guān)鍵字來獲得被拋出異常的引用

try:
    dosomthing()
except (URLError, ValueError) as e:
    print ("error")

except語句是順序檢查的等浊,只有第一個匹配的異常會執(zhí)行,下面代碼中, print ("Exception error") 并不會被執(zhí)行

try:
    raise URLError
except (URLError, ValueError) as e:
    print ("error")
except Exception:
    print ("Exception error")

在調(diào)試的時候楣富,如果對某個特定異常的類層級關(guān)系不確定凿掂,可以通過查看異常的__mro__屬性來快速瀏覽伴榔。例如:

>>> FileNotFoundError.__mro__
(<class 'FileNotFoundError'>, <class 'OSError'>, <class 'Exception'>,
 <class 'BaseException'>, <class 'object'>)
>>>

如果想要捕獲所有異常纹蝴,可以直接捕獲Exception或者不明確指明異常類型庄萎,如下所示

try:
   ...
except Exception as e:
   ...
   log('Reason:', e) 
    
try:
   ...
except:
   ...
   log('Reason:') 

Exception將會捕獲除了SystemExit KeyboardInterrupt GeneratorExit 之外的所有異常。如果還想捕獲這3個異常塘安,可以使用BaseException

捕獲異常后拋出新異常

可以在捕獲異常之后糠涛,再拋出一個自定義的異常

try:
   ...
except IOException as e:
   ...
   log('Reason:', e)
   raise Exception

這種方式只保留最后拋出異常的堆棧信息,如果希望保存原始異常信息兼犯,可以直接使用raise,

try:
   ...
except IOException as e:
   ...
   log('Reason:', e)
   raise
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忍捡,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子切黔,更是在濱河造成了極大的恐慌砸脊,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纬霞,死亡現(xiàn)場離奇詭異凌埂,居然都是意外死亡,警方通過查閱死者的電腦和手機诗芜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門瞳抓,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人伏恐,你說我怎么就攤上這事孩哑。” “怎么了翠桦?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵横蜒,是天一觀的道長。 經(jīng)常有香客問我秤掌,道長愁铺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任闻鉴,我火速辦了婚禮茵乱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘孟岛。我一直安慰自己瓶竭,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布渠羞。 她就那樣靜靜地躺著斤贰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪次询。 梳的紋絲不亂的頭發(fā)上荧恍,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天,我揣著相機與錄音,去河邊找鬼送巡。 笑死摹菠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的骗爆。 我是一名探鬼主播次氨,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼摘投!你這毒婦竟也來了煮寡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤犀呼,失蹤者是張志新(化名)和其女友劉穎幸撕,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體外臂,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡杈帐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了专钉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挑童。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖跃须,靈堂內(nèi)的尸體忽然破棺而出站叼,到底是詐尸還是另有隱情,我是刑警寧澤菇民,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布尽楔,位于F島的核電站,受9級特大地震影響第练,放射性物質(zhì)發(fā)生泄漏阔馋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一娇掏、第九天 我趴在偏房一處隱蔽的房頂上張望呕寝。 院中可真熱鬧,春花似錦婴梧、人聲如沸下梢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽孽江。三九已至,卻和暖如春番电,著一層夾襖步出監(jiān)牢的瞬間岗屏,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留这刷,地道東北人涎跨。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像崭歧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子撞牢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自:JmilkFan_范桂颶:http://blog.csdn.net/jmilk 異常 異常即非正常狀態(tài)率碾,在...
    ccq_inori閱讀 3,703評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)屋彪,斷路器所宰,智...
    卡卡羅2017閱讀 134,599評論 18 139
  • 通俗編程——白話JAVA異常機制 - 代碼之道,編程之法 - 博客頻道 - CSDN.NEThttp://blog...
    葡萄喃喃囈語閱讀 3,165評論 0 25
  • Java異常控制機制又被稱為“違例控制機制”蟹但。捕獲程序錯誤最理想的時機是在編譯階段躯泰,這樣可以徹底避免錯誤的代碼運行...
    kelgon閱讀 4,243評論 2 50
  • 我生活在,一個不算偏僻的山村华糖,那里有山麦向,離我家不遠(yuǎn)處還有一條江,記得小時候江就是我的樂園客叉,經(jīng)常結(jié)伴去江里玩水诵竭,不過...
    美女就是我閱讀 146評論 0 0