亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python異常對象Exception基礎(chǔ)類異常捕捉

 更新時間:2022年06月06日 14:27:16   作者:jiangwei0512  
這篇文章主要為大家介紹了Python異常對象異常捕捉及Exception基礎(chǔ)類,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

異常對象

Python中遇到錯誤后,會引發(fā)異常。

Python中使用異常對象來表示異常情況。

如果異常對象未被處理或者捕捉,程序就會用所謂的回溯(traceback)來終止執(zhí)行。

下面是一個例子:

def func1():
    raise Exception
if __name__ == "__main__":
    func1()

執(zhí)行之后報錯:

(venv) E:\Codes\python_everything\begining-python\src\08>list8-2.py
Traceback (most recent call last):
  File "E:\Codes\python_everything\begining-python\src\08\list8-2.py", line 19, in <module>
    func1()
  File "E:\Codes\python_everything\begining-python\src\08\list8-2.py", line 15, in func1
    raise Exception
Exception

異常有不同的類型,Exception是基礎(chǔ)類,下面還有各種子類:

 +-- Exception
      +-- StopIteration
      +-- StandardError
      |    +-- 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

還可以通過繼承Exception來實現(xiàn)自己的類:

class SomeError(Exception): pass
def func2():
    raise SomeError
if __name__ == "__main__":
    func2()

異常捕捉

異??梢员徊蹲?,需要使用try...except...語句:

class SomeError(Exception): pass
def func2():
    raise SomeError
if __name__ == "__main__":
    try:
        func2()
    except SomeError:
        print("Some error happened")

這里捕捉到了參數(shù),所以就不會回溯:

(venv) E:\Codes\python_everything\begining-python\src\08>list8-3.py
Some error happened

但是如果是其它的異常:

def func1():
    raise Exception
class SomeError(Exception): pass
def func2():
    raise SomeError
if __name__ == "__main__":
    try:
        func1()
    except SomeError:
        print("Some error happened")

這里的Exception就沒有被捕獲,所以還是會回溯:

(venv) E:\Codes\python_everything\begining-python\src\08>list8-3.py
Traceback (most recent call last):
  File "E:\Codes\python_everything\begining-python\src\08\list8-3.py", line 27, in <module>
    func1()
  File "E:\Codes\python_everything\begining-python\src\08\list8-3.py", line 15, in func1
    raise Exception
Exception

如果沒有出現(xiàn)異常,則會繼續(xù)往下執(zhí)行,但是這里可以有else語句來執(zhí)行沒有異常時可以執(zhí)行的語句,使整個邏輯更通順:

if __name__ == "__main__":
    try:
        print("No exception")
    except SomeError:
        print("Some error happened")
    else:
        print("No error happened")

結(jié)果如下:

(venv) E:\Codes\python_everything\begining-python\src\08>list8-3.py
No exception
No error happened

但是有時即使發(fā)生了無法捕捉的異常,也想要執(zhí)行一些語句,這個時候就可以使用finally語句:

def func1():
    raise Exception
class SomeError(Exception): pass
def func2():
    raise SomeError
if __name__ == "__main__":
    try:
        func1()
    except SomeError:
        print("Some error happened")
    else:
        print("No error happened")
    finally:
        print("Do something")

Python中更傾向于使用try...except...這樣的語句來代替if...else..語句。

以上就是Python異常對象異常捕捉及Exception基礎(chǔ)類的詳細(xì)內(nèi)容,更多關(guān)于Python對象Exception類異常捕捉的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Pandas sample隨機抽樣的實現(xiàn)

    Pandas sample隨機抽樣的實現(xiàn)

    隨機抽樣,是統(tǒng)計學(xué)中常用的一種方法,本文主要介紹了Pandas sample隨機抽樣的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • python選取特定列 pandas iloc,loc,icol的使用詳解(列切片及行切片)

    python選取特定列 pandas iloc,loc,icol的使用詳解(列切片及行切片)

    今天小編就為大家分享一篇python選取特定列 pandas iloc,loc,icol的使用詳解(列切片及行切片),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python連接HDFS實現(xiàn)文件上傳下載及Pandas轉(zhuǎn)換文本文件到CSV操作

    Python連接HDFS實現(xiàn)文件上傳下載及Pandas轉(zhuǎn)換文本文件到CSV操作

    這篇文章主要介紹了Python連接HDFS實現(xiàn)文件上傳下載及Pandas轉(zhuǎn)換文本文件到CSV操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • 利用Python寫一個爬妹子的爬蟲

    利用Python寫一個爬妹子的爬蟲

    這篇文章主要給大家介紹了關(guān)于利用Python寫一個爬妹子爬蟲的相關(guān)資料,文中通過實例代碼將實現(xiàn)的方法一步步介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-06-06
  • python如何創(chuàng)建TCP服務(wù)端和客戶端

    python如何創(chuàng)建TCP服務(wù)端和客戶端

    這篇文章主要為大家詳細(xì)介紹了python如何創(chuàng)建TCP服務(wù)端和客戶端,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Python實現(xiàn)調(diào)用攝像頭拍攝照片

    Python實現(xiàn)調(diào)用攝像頭拍攝照片

    這篇文章主要為大家詳細(xì)介紹了如何利用Python實現(xiàn)調(diào)用攝像頭拍攝照片以及郵箱收集功能,文中的示例代碼講解詳細(xì),感興趣的可以動手嘗試一下
    2022-06-06
  • Python(TensorFlow框架)實現(xiàn)手寫數(shù)字識別系統(tǒng)的方法

    Python(TensorFlow框架)實現(xiàn)手寫數(shù)字識別系統(tǒng)的方法

    這篇文章主要介紹了Python(TensorFlow框架)實現(xiàn)手寫數(shù)字識別系統(tǒng)的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • 使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程

    使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程

    這篇文章主要介紹了使用IPython下的Net-SNMP來管理類UNIX系統(tǒng)的教程,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下
    2015-04-04
  • Python 程序報錯崩潰后如何倒回到崩潰的位置(推薦)

    Python 程序報錯崩潰后如何倒回到崩潰的位置(推薦)

    這篇文章主要介紹了Python 程序報錯崩潰后如何倒回到崩潰的位置,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • 通俗講解python 裝飾器

    通俗講解python 裝飾器

    這篇文章主要介紹了python 裝飾器的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python裝飾器的相關(guān)知識,感興趣的朋友可以了解下
    2020-09-09

最新評論