国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

詳解在Python程序中自定義異常的方法

2019-11-25 17:03:41
字體:
供稿:網(wǎng)友

通過創(chuàng)建一個(gè)新的異常類,程序可以命名它們自己的異常。異常應(yīng)該是典型的繼承自Exception類,通過直接或間接的方式。
以下為與RuntimeError相關(guān)的實(shí)例,實(shí)例中創(chuàng)建了一個(gè)類,基類為RuntimeError,用于在異常觸發(fā)時(shí)輸出更多的信息。
在try語句塊中,用戶自定義的異常后執(zhí)行except塊語句,變量 e 是用于創(chuàng)建Networkerror類的實(shí)例。

class Networkerror(RuntimeError):  def __init__(self, arg):   self.args = arg

在你定義以上類后,你可以觸發(fā)該異常,如下所示:

try:  raise Networkerror("Bad hostname")except Networkerror,e:  print e.args

在下面這個(gè)例子中,默認(rèn)的__init__()異常已被我們重寫。

>>> class MyError(Exception):...   def __init__(self, value):...     self.value = value...   def __str__(self):...     return repr(self.value)...>>> try:...   raise MyError(2*2)... except MyError as e:...   print 'My exception occurred, value:', e.value...My exception occurred, value: 4>>> raise MyError, 'oops!'Traceback (most recent call last): File "<stdin>", line 1, in ?__main__.MyError: 'oops!'

常見的做法是創(chuàng)建一個(gè)由該模塊定義的異?;惡妥宇悾瑒?chuàng)建特定的異常類不同的錯(cuò)誤條件。

我們通常定義的異常類,會(huì)讓它比較簡單,允許提取異常處理程序的錯(cuò)誤信息,當(dāng)創(chuàng)建一個(gè)異常模塊的時(shí)候,常見的做法是創(chuàng)建一個(gè)由該模塊定義的異常基類和子類,根據(jù)不同的錯(cuò)誤條件,創(chuàng)建特定的異常類:

class Error(Exception):  """Base class for exceptions in this module."""  passclass InputError(Error):  """Exception raised for errors in the input.  Attributes:    expression -- input expression in which the error occurred    message -- explanation of the error  """  def __init__(self, expression, message):    self.expression = expression    self.message = messageclass TransitionError(Error):  """Raised when an operation attempts a state transition that's not  allowed.  Attributes:    previous -- state at beginning of transition    next -- attempted new state    message -- explanation of why the specific transition is not allowed  """  def __init__(self, previous, next, message):    self.previous = previous    self.next = next    self.message = message

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 建宁县| 贵定县| 汉寿县| 体育| 吐鲁番市| 宜州市| 宁波市| 岑溪市| 铁力市| 遂川县| 叙永县| 巫山县| 卓尼县| 山丹县| 伊通| 六盘水市| 米易县| 青铜峡市| 高台县| 新竹市| 都江堰市| 内黄县| 科技| 万州区| 徐闻县| 红桥区| 新安县| 杨浦区| 乐安县| 太白县| 松桃| 澄迈县| 内乡县| 翼城县| 贵溪市| 曲沃县| 云和县| 衡阳县| 马山县| 金溪县| 手游|