最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python異常繼承關(guān)系和自定義異常實(shí)現(xiàn)代碼實(shí)例

 更新時(shí)間:2020年02月20日 10:44:51   作者:酸果實(shí)愛(ài)吐泡泡的魚  
這篇文章主要介紹了Python異常繼承關(guān)系和自定義異常實(shí)現(xiàn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Python異常繼承關(guān)系和自定義異常實(shí)現(xiàn)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

主要介紹 python 中異常的繼承關(guān)系,及如何自定義異常

1. 異常的繼承關(guān)系

BaseException # 所有異常的基類
 +-- SystemExit # 解釋器請(qǐng)求退出
 +-- KeyboardInterrupt  用戶中斷執(zhí)行(通常是輸入^C)
 +-- GeneratorExit # 生成器(generator)發(fā)生異常來(lái)通知退出
 +-- Exception # 常規(guī)異常的基類
  +-- StopIteration # 迭代器沒(méi)有更多的值
  +-- StandardError # 標(biāo)準(zhǔn)錯(cuò)誤
  | +-- BufferError
  | +-- ArithmeticError
  | | +-- FloatingPointError
  | | +-- OverflowError
  | | +-- ZeroDivisionError
  | +-- AssertionError
  | +-- AttributeError
  | +-- EnvironmentError
  | | +-- IOError
  | | +-- OSError
  | |   +-- WindowsError (Windows)
  | |   +-- VMSError (VMS)
  | +-- EOFError
  | +-- ImportError
  | +-- LookupError
  | | +-- IndexError
  | | +-- KeyError
  | +-- MemoryError
  | +-- NameError
  | | +-- UnboundLocalError
  | +-- ReferenceError
  | +-- RuntimeError
  | | +-- NotImplementedError
  | +-- SyntaxError
  | | +-- IndentationError
  | |   +-- TabError
  | +-- SystemError
  | +-- TypeError
  | +-- ValueError
  |   +-- UnicodeError
  |    +-- UnicodeDecodeError
  |    +-- UnicodeEncodeError
  |    +-- UnicodeTranslateError
  +-- Warning
   +-- DeprecationWarning
   +-- PendingDeprecationWarning
   +-- RuntimeWarning
   +-- SyntaxWarning
   +-- UserWarning
   +-- FutureWarnin
   +-- ImportWarnin
   +-- UnicodeWarnin
   +-- BytesWarning

2. 自定義異常

#自定義異常 需要繼承Exception
class MyException(Exception):

 def __init__(self, *args):
  self.args = args

if __name__ == '__main__':
 try:
  raise MyException("自定義異常")
 except MyException as e:
  print e

3. 異常捕獲

# 示例
str1 = 'abc'
try:
 int(str1)
except IndexError as e:
 print e
except KeyError as e:
 print e
except ValueError as e:
 print e
else:
 print 'try內(nèi)正常處理'
finally:
 print '無(wú)論異常與否,都會(huì)執(zhí)行我'

4. 主動(dòng)觸發(fā)異常

# raise xxx
def test_zero(num):
 try:
  if num == 0:
   raise ValueError('參數(shù)錯(cuò)誤')
  return num
 except Exception as e:
  print e

test_zero(0)

5. 采用traceback模塊查看異常

異常發(fā)生時(shí),Python 能“記住”引發(fā)的異常以及程序的當(dāng)前狀態(tài)。

Python 維護(hù)著traceback(跟蹤)對(duì)象,其中含有異常發(fā)生時(shí)與函數(shù)調(diào)用堆棧有關(guān)的信息。

異??赡茉谝幌盗星短纵^深的函數(shù)調(diào)用中引發(fā)。

程序調(diào)用每個(gè)函數(shù)時(shí),Python 會(huì)在“函數(shù)調(diào)用堆?!钡钠鹗继幉迦牒瘮?shù)名。一旦異常被引發(fā),Python 會(huì)搜索一個(gè)相應(yīng)的異常處理程序。如果當(dāng)前函數(shù)中沒(méi)有異常處理程序,當(dāng)前函數(shù)會(huì)終止執(zhí)行,Python 會(huì)搜索當(dāng)前函數(shù)的調(diào)用函數(shù),并以此類推,直到發(fā)現(xiàn)匹配的異常處理程序,或者Python 抵達(dá)主程序?yàn)橹埂_@一查找合適的異常處理程序的過(guò)程稱為“堆棧輾轉(zhuǎn)開解”(StackUnwinding)。

解釋器一方面維護(hù)著與放置堆棧中的函數(shù)有關(guān)的信息,另一方面也維護(hù)著與已從堆棧中“輾轉(zhuǎn)開解”的函數(shù)有關(guān)的信息。

#示例
def div(num1, num2):
 try:
  result = num1/num2
  return result
 except Exception as e:
  traceback.print_exc()

print div(1, 0)
#執(zhí)行結(jié)果
Traceback (most recent call last):
None
 File "F:/Technology-20161005/python/python_project/demo/exceptiondemo/exceptiondemo.py", line 17, in div
 result = num1/num2
ZeroDivisionError: integer division or modulo by zero
# 可以將異常信息寫到文件中
traceback.print_exc(file=open('1.txt','w+'))

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python?存儲(chǔ)變量的幾種方法(推薦)

    python?存儲(chǔ)變量的幾種方法(推薦)

    這篇文章主要介紹了python?存儲(chǔ)變量的幾種方法,包括numpy?自帶方法,pandas?自帶方法,sklearn?的自帶方法和pickle?庫(kù)操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • 如何使用python切換hosts文件

    如何使用python切換hosts文件

    這篇文章主要介紹了如何使用python切換hosts文件,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Pyecharts之特殊圖表的實(shí)現(xiàn)示例

    Pyecharts之特殊圖表的實(shí)現(xiàn)示例

    本文主要介紹了Pyecharts之特殊圖表的實(shí)現(xiàn)示例,包括象形圖、水球圖和日歷圖的定制方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-01-01
  • python調(diào)用matlab的m自定義函數(shù)方法

    python調(diào)用matlab的m自定義函數(shù)方法

    今天小編就為大家分享一篇python調(diào)用matlab的m自定義函數(shù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 一文教你如何用Python輕輕松松操作Excel,Word,CSV

    一文教你如何用Python輕輕松松操作Excel,Word,CSV

    數(shù)據(jù)處理是 Python 的一大應(yīng)用場(chǎng)景,而 Excel 又是當(dāng)前最流行的數(shù)據(jù)處理軟件。本文將為大家詳細(xì)介紹一下如何用Python輕輕松松操作Excel、Word、CSV,需要的可以參考一下
    2022-02-02
  • pandas DataFrame mask的具體使用

    pandas DataFrame mask的具體使用

    pandas.DataFrame.mask方法提供了一種靈活的方式來(lái)根據(jù)條件篩選和替換 DataFrame中的元素,本文主要介紹了pandas DataFrame mask的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • Python?使用和高性能技巧操作大全

    Python?使用和高性能技巧操作大全

    這篇文章主要介紹了Python?使用和高性能技巧總結(jié),對(duì)一些python易混淆的操作進(jìn)行對(duì)比,不少 Python 的用戶是從以前 C/C++ 遷移過(guò)來(lái)的,這兩種語(yǔ)言在語(yǔ)法、代碼風(fēng)格等方面有些不同,本節(jié)簡(jiǎn)要進(jìn)行介紹,需要的朋友可以參考下
    2022-01-01
  • python的unittest測(cè)試類代碼實(shí)例

    python的unittest測(cè)試類代碼實(shí)例

    這篇文章主要介紹了python的unittest測(cè)試類代碼實(shí)例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • Python中BaseHTTPRequestHandler實(shí)現(xiàn)簡(jiǎn)單的API接口

    Python中BaseHTTPRequestHandler實(shí)現(xiàn)簡(jiǎn)單的API接口

    本文主要介紹了Python中BaseHTTPRequestHandler實(shí)現(xiàn)簡(jiǎn)單的API接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 詳解Python列表賦值復(fù)制深拷貝及5種淺拷貝

    詳解Python列表賦值復(fù)制深拷貝及5種淺拷貝

    這篇文章主要介紹了Python列表賦值,復(fù)制,深拷貝以及5種淺拷貝詳解,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-05-05

最新評(píng)論

五大连池市| 雷州市| 宜兴市| 增城市| 辛集市| 洛川县| 普宁市| 绥阳县| 盈江县| 浦县| 孝义市| 云梦县| 阿勒泰市| 宁夏| 海宁市| 化州市| 中江县| 广汉市| 广宁县| 宁河县| 疏附县| 金堂县| 舞阳县| 米泉市| 晋江市| 新巴尔虎左旗| 防城港市| 八宿县| 且末县| 固安县| 赣榆县| 石家庄市| 长白| 永定县| 封丘县| 区。| 冷水江市| 邹平县| 海口市| 资兴市| 普定县|