一. 拋出異常
Python用異常對象(exception object)表示異常情況,遇到錯誤后,會引發(fā)異常。如果異常對象并未被處理或捕捉,程序就會用所謂的回溯(Traceback,一種錯誤信息)終止執(zhí)行。
raise 語句
Python中的raise 關鍵字用于引發(fā)一個異常,基本上和C#和Java中的throw關鍵字相同,如下所示:
import traceback
def throw_error():
raise Exception("拋出一個異常")#異常被拋出,print函數(shù)無法執(zhí)行
print("飛天豬")
throw_error()
#運行結(jié)果:
'''Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\systray.py", line 7, in
throw_error()
File "C:\Users\Administrator\Desktop\systray.py", line 4, in throw_error
raise Exception("拋出一個異常")#異常被拋出,print函數(shù)無法執(zhí)行
Exception: 拋出一個異常'''
raise關鍵字后面是拋出是一個通用的異常類型(Exception),一般來說拋出的異常越詳細越好
二.傳遞異常:
捕捉到了異常,但是又想重新引發(fā)它(傳遞異常),可以使用不帶參數(shù)的raise語句即可:
class MufCalc(object):
m = False
def calc(self,exp):
try:
return eval(exp)
except ZeroDivisionError:
if self.m:
print("cool")
else:
raise
app = MufCalc()
app.calc(2/0)
三.自定義異常類型 :
Python中也可以自定義自己的特殊類型的異常,只需要要從Exception類繼承(直接或間接)即可:
class MyError(Exception):
pass
更多文章、技術(shù)交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

