一. 拋出異常
python用異常對象(exception object)表示異常情況,遇到錯誤後,會引發異常。如果異常對象並未被處理或捕捉,程序就會用所謂的回溯(Traceback,一種錯誤信息)終止執行。
raise 語句
Python中的raise 關鍵字用於引發一個異常,基本上和C#和Java中的throw關鍵字相同,如下所示:
import traceback def throw_error(): raise Exception("拋出一個異常")#異常被拋出,print函數無法執行 print("飛天豬") throw_error()
#運行結果:
'''Traceback (most recent call last): File "C:\Users\Administrator\Desktop\systray.py", line 7, in <module> throw_error() File "C:\Users\Administrator\Desktop\systray.py", line 4, in throw_error raise Exception("拋出一個異常")#異常被拋出,print函數無法執行 Exception: 拋出一個異常'''
raise關鍵字後面是拋出是一個通用的異常類型(Exception),一般來說拋出的異常越詳細越好
二.傳遞異常:
捕捉到了異常,但是又想重新引發它(傳遞異常),可以使用不帶參數的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
Tags:
文章來源: