Python 從入門到進階之路(六)

以前的文章咱們簡單介紹了一下 Python 的面向對象,本篇文章咱們來看一下 Python 中異常處理。spa

咱們在寫程序時,有可能會出現程序報錯,可是咱們想繞過這個錯誤執行操做。即便咱們的程序寫的沒問題,可是在運行時也可能會出錯,這是咱們就須要將異常拋出來解決,以下代碼:code

1 print(name)
2 print("1111")

在上面的代碼中,咱們想打印輸出 name 值,可是咱們並無提早聲明該變量,因此程序會拋出異常,但咱們並不想讓程序報錯,能夠以下解決:對象

1 try:
2     print(name)
3 except NameError:
4     print("發生了異常")  # 發生了異常
5 print("1111")  # 1111

根據上面的代碼不難發現,咱們能夠使用 try except 語法來跳過這個異常執行接下來的代碼。blog

異常處理的詳細寫法以下:io

 1 try:
 2     print("123")
 3 except (NameError,FileExistsError):
 4     print(NameError,FileExistsError)
 5     print("若是捕獲到異常後作的處理")
 6 except Exception as ret:
 7     print("若是用了 Exception,那麼意味着只要上面的 except 沒有捕獲到異常,這個 except 必定會捕獲到")
 8     print(ret)
 9 else:
10     print("沒有異常纔會執行的功能")
11 finally:
12     print("不管有沒有異常都執行")
13 
14 print("1111")
15 
16 '''
17 123
18 沒有異常纔會執行的功能
19 不管有沒有異常都執行
20 1111
21 '''

從上面的輸出結果咱們能夠看出,當程序沒有錯誤正常執行時,程序執行了 else,finally 兩個異常處理。class

 1 try:
 2     print(name)
 3 except (NameError,FileExistsError):
 4     print(NameError,FileExistsError)
 5     print("若是捕獲到異常後作的處理")
 6 except Exception as ret:
 7     print("若是用了 Exception,那麼意味着只要上面的 except 沒有捕獲到異常,這個 except 必定會捕獲到")
 8     print(ret)
 9 else:
10     print("沒有異常纔會執行的功能")
11 finally:
12     print("不管有沒有異常都執行")
13 
14 print("1111")
15 
16 '''
17 <class 'NameError'> <class 'FileExistsError'>
18 若是捕獲到異常後作的處理
19 不管有沒有異常都執行
20 1111
21 '''

從上面的輸出結果咱們能夠看出,若是程序報錯且第一個 except 捕獲到異常,程序執行了第一個 except,finally 兩個異常處理。變量

 1 try:
 2     1/0
 3 except (NameError,FileExistsError):
 4     print(NameError,FileExistsError)
 5     print("若是捕獲到異常後作的處理")
 6 except Exception as ret:
 7     print("若是用了 Exception,那麼意味着只要上面的 except 沒有捕獲到異常,這個 except 必定會捕獲到")
 8     print(ret)
 9 else:
10     print("沒有異常纔會執行的功能")
11 finally:
12     print("不管有沒有異常都執行")
13 
14 print("1111")
15 
16 '''
17 若是用了 Exception,那麼意味着只要上面的 except 沒有捕獲到異常,這個 except 必定會捕獲到
18 division by zero
19 不管有沒有異常都執行
20 1111
21 '''

從上面的輸出結果咱們能夠看出,若是程序報錯且第二個 except 捕獲到異常,程序執行了第二個 except,finally 兩個異常處理。語法

在編寫程序中,咱們不可避免地會使用拋出異常來處理咱們的程序使其能正常運行,可是咱們應儘可能少的使用跑出異常。程序

相關文章
相關標籤/搜索