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

Python中try用法、內(nèi)置異常類型與自定義異常類型拓展案例詳解

 更新時間:2025年04月14日 09:15:44   作者:脫脫克克  
在?Python?里,try?語句主要用于異常處理,其作用是捕獲并處理代碼運行期間可能出現(xiàn)的異常,避免程序因異常而意外終止,這篇文章主要介紹了Python中try用法、內(nèi)置異常類型與自定義異常類型拓展,需要的朋友可以參考下

try介紹與語法格式

在 Python 里,try 語句主要用于異常處理,其作用是捕獲并處理代碼運行期間可能出現(xiàn)的異常,避免程序因異常而意外終止。try 語句通常會和 except、else 以及 finally 子句搭配使用。具體語法框架如下:

try:
    # 可能會引發(fā)異常的代碼塊
    pass
except ExceptionType1:
    # 處理特定類型異常的代碼塊
    pass
except ExceptionType2:
    # 處理另一種特定類型異常的代碼塊
    pass
else:
    # 當 try 代碼塊沒有引發(fā)異常時執(zhí)行的代碼塊
    pass
finally:
    # 無論 try 代碼塊是否引發(fā)異常,都會執(zhí)行的代碼塊
    pass

在 Python 里,pass 是一個空語句,它不執(zhí)行任何操作,主要用于占位,保證代碼的語法完整性。

try具體使用案例

下面結(jié)合前面讀取 .xlsx 文件的代碼詳細講解其用法:

import openpyxl
def read_xlsx(file_path):
    try:
        # 以二進制模式打開 .xlsx 文件
        workbook = openpyxl.load_workbook(file_path)
        # 獲取活動工作表
        sheet = workbook.active
        # 遍歷工作表中的每一行
        for row in sheet.iter_rows(values_only=True):
            print(row)
    except FileNotFoundError:
        print(f"錯誤:未找到文件 {file_path}。")
    except Exception as e:
        print(f"發(fā)生未知錯誤:{e}")
if __name__ == "__main__":
    file_path = 'example.xlsx'
    read_xlsx(file_path)
  • try 代碼塊包含了可能會引發(fā)異常的代碼。在這個例子中,openpyxl.load_workbook(file_path)
  • 嘗試打開指定路徑的 .xlsx 文件,若文件不存在或者文件格式有誤,就可能會引發(fā)異常。
  • 后續(xù)的代碼如獲取活動工作表和遍歷工作表中的行,在文件打開成功后執(zhí)行,同樣可能會因為文件內(nèi)容不規(guī)范等原因引發(fā)異常。
  • except FileNotFoundError:專門處理FileNotFoundError異常,也就是當指定的文件不存在時,會執(zhí)行該代碼塊中的語句,打印出錯誤信息。
  • except Exception as e:這是一個通用的異常處理塊,會捕獲除 FileNotFoundError之外的其他所有異常,并將異常信息存儲在變量 e 中,然后打印出未知錯誤信息。

except的異常類型

簡介

在 Python 里,try-except 語句會依據(jù) try 代碼塊拋出的異常類型來判定執(zhí)行哪個 except 子句。當 try 代碼塊出現(xiàn)異常時,Python 會按順序檢查每個 except 子句,查看其指定的異常類型是否與拋出的異常類型相匹配。若匹配成功,就會執(zhí)行該 except 子句里的代碼。

案例

下面給出一個示例,借助打印信息來明確執(zhí)行了哪個 except 子句:

try:
    # 可能會引發(fā)異常的代碼塊
    result = 1 / 0  # 這里會引發(fā) ZeroDivisionError
except ZeroDivisionError:
    # 處理特定類型異常的代碼塊
    print("執(zhí)行了 ZeroDivisionError 異常處理")
except ValueError:
    # 處理另一種特定類型異常的代碼塊
    print("執(zhí)行了 ValueError 異常處理")
else:
    # 當 try 代碼塊沒有引發(fā)異常時執(zhí)行的代碼塊
    print("try 代碼塊沒有引發(fā)異常")
finally:
    # 無論 try 代碼塊是否引發(fā)異常,都會執(zhí)行的代碼塊
    print("finally 代碼塊始終會執(zhí)行")

在這個示例中,try 代碼塊里的 1 / 0 會引發(fā) ZeroDivisionError 異常。所以,Python 會檢查各個 except 子句,發(fā)現(xiàn) ZeroDivisionError 匹配第一個 except 子句,進而執(zhí)行該子句里的代碼,輸出 “執(zhí)行了 ZeroDivisionError 異常處理”。

內(nèi)置的常見異常類型

以下是Python中常見的可被except捕獲的內(nèi)置異常類型匯總表格(基于Exception基類體系):

自定義異常類型

自定義異常需要繼承自 Python 的內(nèi)置異常類,通常是 Exception 類。下面是一個自定義異常的示例:

# 定義一個自定義異常類
class MyCustomError(Exception):
    pass
try:
    # 模擬拋出自定義異常
    raise MyCustomError("這是一個自定義異常")
except MyCustomError as e:
    print(f"捕獲到自定義異常: {e}")

在上述代碼中,MyCustomError 是自定義的異常類,它繼承自 Exception 類。在 try 代碼塊中使用 raise 關鍵字拋出這個自定義異常,然后在 except 語句中捕獲并處理它。

繼承關系

Exception 類繼承自 BaseException,不過像 SystemExit、KeyboardInterruptGeneratorExit 這類系統(tǒng)退出相關的異常直接繼承自 BaseException,而非 Exception。這意味著 Exception 類涵蓋的是常規(guī)的程序運行時錯誤,并非用于處理系統(tǒng)層面的退出事件。

用途

  • 捕獲通用異常:在編寫代碼時,若不確定會出現(xiàn)哪種具體的異常,可使用 Exception 類來捕獲所有常規(guī)異常。
  • 創(chuàng)建自定義異常:可以通過繼承 Exception 類來創(chuàng)建自定義的異常類,從而在特定場景下拋出這些自定義異常。

注意事項

  • 慎用 except Exception:雖然 except Exception 能捕獲所有常規(guī)異常,但可能會掩蓋一些本應被關注的特定異常,使調(diào)試變得困難。因此,在可能的情況下,最好捕獲具體的異常類型。
  • 自定義異常的命名:自定義異常類的命名應清晰地反映其用途,通常以 Error 結(jié)尾,比如DatabaseErrorValidationError 等。

到此這篇關于Python中try用法、內(nèi)置異常類型與自定義異常類型拓展的文章就介紹到這了,更多相關Python try用法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • tensorflow: variable的值與variable.read_value()的值區(qū)別詳解

    tensorflow: variable的值與variable.read_value()的值區(qū)別詳解

    今天小編就為大家分享一篇tensorflow: variable的值與variable.read_value()的值區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python教程之利用pyautogui圖形自動化擊敗重復性辦公任務

    python教程之利用pyautogui圖形自動化擊敗重復性辦公任務

    在使用Python做腳本的話,有兩個庫可以使用,一個為PyUserInput庫,另一個為pyautogui庫,就本人而言更喜歡使用pyautogui庫,該庫功能多,使用便利,下面這篇文章主要給大家介紹了關于python教程之利用pyautogui圖形自動化擊敗重復性辦公任務的相關資料,需要的朋友可以參考下
    2022-03-03
  • Python Scrapy?框架簡單介紹

    Python Scrapy?框架簡單介紹

    Scrapy是適用于Python的一個快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點并從頁面中提取結(jié)構化的數(shù)據(jù),這篇文章主要介紹了Scrapy框架優(yōu)點及簡單介紹,需要的朋友可以參考下
    2023-05-05
  • Python中拆包的實現(xiàn)

    Python中拆包的實現(xiàn)

    拆包是一個非常實用且常見的操作,它能夠簡化代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-07-07
  • python處理列表的部分元素的實例詳解

    python處理列表的部分元素的實例詳解

    在本篇文章里小編給大家整理的是一篇關于python處理列表的部分元素的實例詳解內(nèi)容,有興趣的朋友們可以學習下。
    2021-09-09
  • Jmeter如何使用BeanShell取樣器調(diào)用Python腳本

    Jmeter如何使用BeanShell取樣器調(diào)用Python腳本

    這篇文章主要介紹了Jmeter使用BeanShell取樣器調(diào)用Python腳本,文章圍繞Jmeter調(diào)用Python腳本的相關詳情展開標題內(nèi)容,需要的小伙伴可以參考一下
    2022-03-03
  • Python HTMLTestRunner如何下載生成報告

    Python HTMLTestRunner如何下載生成報告

    這篇文章主要介紹了Python HTMLTestRunner如何下載生成報告,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • python 隊列詳解及實例代碼

    python 隊列詳解及實例代碼

    這篇文章主要介紹了python 隊列詳解的相關資料,并附簡單實例代碼,幫助大家學習了解數(shù)據(jù)結(jié)構的隊列,需要的朋友可以參考下
    2016-10-10
  • Python-numpy實現(xiàn)灰度圖像的分塊和合并方式

    Python-numpy實現(xiàn)灰度圖像的分塊和合并方式

    今天小編就為大家分享一篇Python-numpy實現(xiàn)灰度圖像的分塊和合并方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 探究Python的Tornado框架對子域名和泛域名的支持

    探究Python的Tornado框架對子域名和泛域名的支持

    這篇文章主要介紹了探究Python的Tornado框架對子域名和泛域名的支持,Tornado作為一個典型的異步框架、在Python開發(fā)者中的人氣相當高,需要的朋友可以參考下
    2015-05-05

最新評論

宜城市| 石河子市| 贺兰县| 全椒县| 焉耆| 靖宇县| 瑞昌市| 庆安县| 铁岭县| 凌云县| 朝阳区| 大冶市| 博乐市| 广元市| 葵青区| 淮南市| 镇康县| 云林县| 古丈县| 邻水| 安康市| 务川| 广元市| 定南县| 上虞市| 灵丘县| 枣强县| 罗江县| 团风县| 万荣县| 平安县| 城固县| 武鸣县| 巩义市| 江华| 永胜县| 敖汉旗| 长泰县| 元朗区| 南宫市| 漠河县|