日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

淺談python拋出異常、自定義異常, 傳遞異常

系統(tǒng) 2001 0

一. 拋出異常

Python用異常對象(exception object)表示異常情況,遇到錯誤后,會引發(fā)異常。如果異常對象并未被處理或捕捉,程序就會用所謂的回溯(Traceback,一種錯誤信息)終止執(zhí)行。

raise 語句

Python中的raise 關(guān)鍵字用于引發(fā)一個異常,基本上和C#和Java中的throw關(guān)鍵字相同,如下所示:

            
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關(guān)鍵字后面是拋出是一個通用的異常類型(Exception),一般來說拋出的異常越詳細(xì)越好

二.傳遞異常:

捕捉到了異常,但是又想重新引發(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ù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 浦县| 二连浩特市| 密云县| 浪卡子县| 阳原县| 历史| 东丽区| 安龙县| 云梦县| 嘉祥县| 方城县| 英超| 泰和县| 泽普县| 兴宁市| 南和县| 绥宁县| 台北县| 额尔古纳市| 十堰市| 新沂市| 五指山市| 博客| 航空| 石台县| 剑河县| 乡宁县| 盘山县| 长汀县| 阳春市| 凤山县| 双峰县| 南江县| 衡阳县| 大英县| 崇义县| 新乐市| 广宁县| 东辽县| 千阳县| 松滋市|