python中的異常及幾種常見異常

異常

異常(Exception),程序在運行過程中發生由於外部問題(如硬件錯誤、輸入錯誤)等導致的程序異常事件。

在Python等面向對象的編程語言中,異常本身是一個對象,產生異常就是產生了一個異常對象。

 

拋異常的好處

在編程中拋出異常,可以使得程序能夠繼續執行,而不是中途停止,能夠保持程序的健壯性。二是,拋出異常可以幫助我們做好留痕工作,對有問題的數據進行收集處理。

 

編程中應用

Python

一般捕獲異常方式

在python中,我們一般使用以下格式來進行異常的捕獲。

try:
    '代碼塊'
except [異常類型]:
    '代碼塊'

 將可能發生異常的代碼放在try下的代碼塊中。當try裏面的代碼發生異常時,如果符合except後的異常類型就直接轉向執行except裏的代碼塊;try裏面的代碼沒有出現問題,就不執行except裏的代碼。

except後如果不寫異常類型,則表示捕獲所有異常類型。

try:
    print(1/0)
except ZeroDivisionError as e:
    print(e)

except [異常類型] [as 變量名(保存異常信息)],[]括號中的可寫可不寫。

try-else

沒有發生異常時,在執行完try代碼塊後執行else的代碼。有異常則不執行else裏面的代碼塊。

try:
    print('開始程序')
    print(1/0)
except ZeroDivisionError as e:	
    print(e)
else:
    print('else')

try-Finally

無論有沒有異常,最後都執行finally後的語句。寫在最後面

 

自定義異常raise

定義異常類:可以自定義一個錯誤類例如

class Error(Exception):
    def __init__(self, smg):
        self.smg = smg
    def __str__(self,):
        return str(self.smg)

格式:raise+異常對象(‘異常描述’)

try:
    raise Error('2333')  #拋出異常
except Error as e:   
    print(e)   #調用自定義異常類

>>>2333

 

異常種類:

Exception 異常的父類,可以捕獲多個子類

在requests模塊中常見的異常:

在requests.exceptions方法下查看

requests.exceptions ConnectionError #未知的服務器

requests.exceptions ConnectTimeout #連接\讀取超時

requests.exceptions ProxyError #代理連接不上

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章