日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 异常处理-Python零基础入门教程

發布時間:2024/9/27 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 异常处理-Python零基础入门教程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 一.Python 異常處理簡介
  • 二.Python 異常捕獲方式
    • 1.捕獲所有異常
    • 2.捕獲指定異常
    • 3.捕獲多個異常
    • 4.萬能的異常捕獲
    • 5.異常中的 else
    • 6.異常中的 finally
    • 7.raise 主動觸發異常
  • 三.猜你喜歡

零基礎 Python 學習路線推薦 : Python 學習目錄 >> Python 基礎入門

在 Python 開發中,代碼書寫時難免有疏忽或者意向不到的 bug ,導致程序 run 的過程中有可能會直接崩潰;

然后對于程序猿而言,程序因 bug 崩潰是家常便飯,為了增加程序的健壯性,防止程序崩潰,我們可以對程序的有可能發生崩潰的代碼增加異常處理,以達到程序穩健運行的目的。

一.Python 異常處理簡介

一般情況,Python 無法正常處理程序時,就是會產生異常造成程序崩潰,舉個例子:

1.大家都知道分母不能為 0,如果分母為 0,程序必然崩潰;

x = 3/0程序崩潰/報錯:ZeroDivisionError: division by zero

2.假如 Python 文件讀寫 中,我們講解了文件的讀寫操作,如果我們對一個不存在的文件讀取內容,程序必然也會崩潰;

# 讀取123.txt文件,實際上該文件并不存在 fp =open("123.txt","r")程序崩潰/報錯:FileNotFoundError: [Errno 2] No such file or directory: '123.txt'

對于以上的各種異常情況,我們可以通過 try…except…解決,那么具體有哪些異常能捕獲呢?如下所示:

  • 1.BaseException — 所有異常的基類
  • 2.SystemExit — 解釋器請求退出
  • 3.KeyboardInterrupt — 用戶中斷執行(通常是輸入^C)
  • 4.Exception — 常規錯誤的基類
  • 5.StopIteration — 迭代器沒有更多的值
  • 6.GeneratorExit — 生成器(generator)發生異常來通知退出
  • 7.StandardError — 所有的內建標準異常的基類
  • 8.ArithmeticError — 所有數值計算錯誤的基類
  • 9.FloatingPointError — 浮點計算錯誤
  • 10.OverflowError — 數值運算超出最大限制
  • 11.ZeroDivisionError — 除(或取模)零 (所有數據類型)
  • 12.AssertionError — 斷言語句失敗
  • 13.AttributeError — 對象沒有這個屬性
  • 14.EOFError — 沒有內建輸入,到達 EOF 標記
  • 15.EnvironmentError — 操作系統錯誤的基類
  • 16.IOError — 輸入/輸出操作失敗
  • 17.OSError — 操作系統錯誤
  • 18.WindowsError — 系統調用失敗
  • 19.ImportError — 導入模塊/對象失敗
  • 20.LookupError — 無效數據查詢的基類
  • 21.IndexError — 列中沒有此索引(index)
  • 22.KeyError — 映射中沒有這個鍵
  • 23.MemoryError — 內存溢出錯誤(對于 Python 解釋器不是致命的)
  • 24.NameError — 未聲明/初始化對象 (沒有屬性)
  • 25.UnboundLocalError — 訪問未初始化的本地變量
  • 26.ReferenceError — 弱引用(Weak reference)試圖訪問已經垃圾回收了的對象
  • 27.RuntimeError — 一般的運行時錯誤
  • 28.NotImplementedError — 尚未實現的方法
  • 29.SyntaxError — Python 語法錯誤
  • 30.IndentationError — 縮進錯誤
  • 31.TabError — Tab 和空格混用
  • 32.SystemError — 一般的解釋器系統錯誤
  • 33.TypeError — 對類型無效的操作
  • 34.ValueError — 傳入無效的參數
  • 35.UnicodeError — Unicode 相關的錯誤
  • 36.UnicodeDecodeError — Unicode 解碼時的錯誤
  • 37.UnicodeEncodeError — Unicode 編碼時錯誤
  • 38.UnicodeTranslateError — Unicode 轉換時錯誤
  • 39.Warning — 警告的基類
  • 40.DeprecationWarning — 關于被棄用的特征的警告
  • 41.FutureWarning — 關于構造將來語義會有改變的警告
  • 42.OverflowWarning — 舊的關于自動提升為長整型(long)的警告
  • 43.PendingDeprecationWarning — 關于特性將會被廢棄的警告
  • 44.RuntimeWarning — 可疑的運行時行為(runtime behavior)的警告
  • 45.SyntaxWarning — 可疑的語法的警告
  • 46.UserWarning — 用戶代碼生成的警告[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-QaPnrCEr-1622213823637)(blob:https://www.codersrc.com/d6c5ed6d-6da0-4e59-bd44-380ff6d8db5d “Python 異常處理-猿說編程”)]

二.Python 異常捕獲方式

1.捕獲所有異常

try:<代碼> except:print("異常說明")

示例代碼:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 異常.py @Time:2021/04/22 08:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""try:x = 3 / 0 # 程序出現異常,不會繼續執行后面的代碼print("hello world") except:print("異常說明:分母不能為0")print("程序正常結束")''' 輸出結果:異常說明:分母不能為0 程序正常結束 '''

2.捕獲指定異常

try:< 語句 > except < 異常名 >:print('異常說明')

示例代碼:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 異常.py @Time:2021/04/22 08:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""try:fp = open("123.txt","r") # 程序出現異常,不會繼續執行后面的代碼print("hello world")fp.close() except IOError:print("異常說明:文件讀取失敗")print("程序正常結束")''' 輸出結果:異常說明:文件讀取失敗 程序正常結束 '''

3.捕獲多個異常

try:< 語句 > except < 異常名1 >:print('異常說明1') except < 異常名2 >:print('異常說明2') except < 異常名3 >:print('異常說明3')

該種異常處理語法的規則是:

  • a.執行 try 下的語句,如果引發異常,則執行過程會跳到第一個 except 語句。
  • b.如果第一個 except 中定義的異常名與引發的異常匹配,則執行該 except 中的語句。
  • c.如果引發的異常不匹配第一個 except,則會搜索第二個 except,允許編寫的 except 數量沒有限制。
  • d.如果所有的 except 都不匹配,則異常會傳遞到下一個調用本代碼的最高層 try 代碼中。

示例代碼:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 異常.py @Time:2021/04/22 08:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""try:fp = open("123.txt","r") # 程序出現異常,不會繼續執行后面的代碼print("hello world")fp.close() except GeneratorExit:print("異常說明:GeneratorExit") except FloatingPointError:print("異常說明:FloatingPointError") except OverflowError:print("異常說明:OverflowError") except ZeroDivisionError:print("異常說明:ZeroDivisionError") except IOError:print("異常說明:IOError")print("程序正常結束")''' 輸出結果:異常說明:IOError 程序正常結束 '''

4.萬能的異常捕獲

try: < 語句 > except Exception as e: # 自動識別異常信息,并將異常信息保存在e中print('異常說明:',e)

示例代碼:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 異常.py @Time:2021/04/22 08:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""try:fp = open("python.txt","r") # 程序出現異常,不會繼續執行后面的代碼print("hello world")fp.close() except Exception as e:print("異常說明:",e)print("程序正常結束")''' 輸出結果:異常說明: [Errno 2] No such file or directory: 'python.txt' 程序正常結束 '''

?

5.異常中的 else

如果判斷完沒有異常之后還想做其他事,就可以使用下面這樣的 else 語句,注意:是在 try 中沒有異常情況下,才會執行 else 之后的代碼。

try:< 語句 > except < 異常名1 >:print('異常說明1') except < 異常名2 >:print('異常說明2') else:< 語句 > # try語句中沒有異常則執行此段代碼

示例代碼:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 異常.py @Time:2021/04/22 08:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""try:print("hello world") except GeneratorExit:print("異常說明:GeneratorExit") except FloatingPointError:print("異常說明:FloatingPointError") except OverflowError:print("異常說明:OverflowError") except ZeroDivisionError:print("異常說明:ZeroDivisionError") else:print("i love you")print("程序正常結束")''' 輸出結果:hello world i love you 程序正常結束 '''

6.異常中的finally

try…finally…語句無論是否發生異常都將會執行最后的代碼。

try:< 語句 > finally:< 語句 >

示例代碼:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 異常.py @Time:2021/04/22 08:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""try:fp = open("python.txt","r") # 程序出現異常,不會繼續執行后面的代碼print("hello world")fp.close() except Exception as e:print("異常說明:",e) finally:print("finally") # 無論是否發生異常都將會執行最后的代碼print("程序正常結束")''' 輸出結果:raise Exception! 異常說明: [Errno 2] No such file or directory: 'python.txt' finally 程序正常結束 '''

7.raise主動觸發異常

可以使用 raise 語句自己觸發異常,語法如下:

raise [Exception [, args [, traceback]]]

語句中 Exception 是異常的類型(例如,IOError )參數標準異常中任一種,args 是自已提供的異常參數。最后一個參數是可選的(在實踐中很少使用),如果存在,是跟蹤異常對象;示例代碼如下:

# !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:猿說編程 @Blog(個人博客地址): www.codersrc.com @File:Python 異常.py @Time:2021/04/22 08:00 @Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!"""try:raise Exception("raise Exception!") # 觸發異常后,后面的代碼就不會再執行print("hello world") except Exception as e:print(e) finally:print("OK")''' 輸出結果:raise Exception! OK '''

在 Python 開發中,為了增加程序的健壯性,異常處理 try…except… 是必須掌握的內容.

三.猜你喜歡

  • Python for 循環
  • Python 字符串
  • Python 列表 list
  • Python 元組 tuple
  • Python 字典 dict
  • Python 條件推導式
  • Python 列表推導式
  • Python 字典推導式
  • Python 函數聲明和調用
  • Python 不定長參數 *argc/**kargcs
  • Python 匿名函數 lambda
  • Python return 邏輯判斷表達式
  • Python 字符串/列表/元組/字典之間的相互轉換
  • Python 局部變量和全局變量
  • Python type 函數和 isinstance 函數區別
  • Python is 和 == 區別
  • Python 可變數據類型和不可變數據類型
  • Python 淺拷貝和深拷貝
  • 未經允許不得轉載:猿說編程 ? Python 異常處理

    總結

    以上是生活随笔為你收集整理的Python 异常处理-Python零基础入门教程的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。