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

Python特殊字符異常處理示例詳解

 更新時間:2026年02月09日 15:20:58   作者:choke233  
本文詳細介紹了Python中的異常處理機制,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,感興趣的朋友一起看看吧

在 Python 編程中,程序錯誤主要分為三類:

類型說明
語法錯誤代碼不符合 Python 語法規(guī)范,無法運行
邏輯錯誤程序能運行,但結(jié)果不符合預期
運行時錯誤(異常)程序在運行過程中發(fā)生的錯誤

其中,我們今天重點討論的就是——異常(Exception)。

1. 異常的本質(zhì)

  • 異常是程序運行過程中發(fā)生的事件
  • 會影響程序的正常執(zhí)行
  • 如果不處理,會導致程序崩潰

常見異常示例:

1 / 0
# ZeroDivisionError: division by zero
'2' + 2
# TypeError: can only concatenate str (not "int") to str
open('file.txt')
# FileNotFoundError

二、異常的類型

Python 中所有異常都繼承自:

BaseException
  └── Exception

常見異常類型:

異常類型觸發(fā)場景
NameError使用未定義變量
TypeError數(shù)據(jù)類型不匹配
ValueError傳入無效參數(shù)
IndexError列表索引越界
FileNotFoundError文件不存在
ZeroDivisionError除以 0

三、異常處理核心:try-except

1. 基本語法

try:
    可能出錯的代碼
except 異常類型:
    出錯后的處理代碼

示例:

try:
    x = 10 / 0
except ZeroDivisionError:
    print("除數(shù)不能為0!")

2. 捕獲多個異常

try:
    print(count)
    arr = [1,2,3]
    print(arr[5])
except NameError as e:
    print("變量未定義:", e)
except IndexError as e:
    print("索引越界:", e)

3. 捕獲所有異常

try:
    ...
except Exception as e:
    print("發(fā)生異常:", e)

?? 不推薦濫用:
捕獲所有異常會掩蓋真實問題,只建議在全局保護時使用

四、異常處理進階結(jié)構(gòu)

1. try-except-else

try:
    x = 10 / 2
except ZeroDivisionError:
    print("錯誤")
else:
    print("沒有異常時執(zhí)行")
  • try 沒異常 → 執(zhí)行 else
  • try 有異常 → 不執(zhí)行 else

2. try-except-finally

try:
    f = open("test.txt")
except:
    print("出錯")
finally:
    print("無論如何都會執(zhí)行")
  • 關(guān)閉文件
  • 釋放資源
  • 斷開連接

3. 完整結(jié)構(gòu)

try:
    ...
except:
    ...
else:
    ...
finally:
    ...

五、主動拋出異常

1. raise 語句

age = 15
if age < 18:
    raise ValueError("年齡必須大于18歲")

2. assert 斷言

assert age >= 18, "年齡必須>=18"
  • 多用于測試階段
  • 條件為 False 時拋出 AssertionError

六、異常的傳遞機制

異常具有“向上傳遞”的特性:

def func1():
    return 10 / 0
def func2():
    func1()
try:
    func2()
except ZeroDivisionError:
    print("已捕獲異常")
  • 下層未處理 → 向上層傳遞
  • 直到被捕獲或程序崩潰

七、自定義異常

當內(nèi)置異常無法滿足需求時,可以自己定義:

class AgeError(Exception):
    pass
age = 16
if age < 18:
    raise AgeError("未滿18歲!")

自定義異常的好處:

  • 更符合業(yè)務語義
  • 便于維護和調(diào)試

八、with 語句與異常

1. 為什么需要 with?

傳統(tǒng)寫法:

file = open("a.txt")
...
file.close()

如果中途報錯,文件可能無法關(guān)閉。

2. 使用 with

with open("a.txt") as f:
    print(f.read())

優(yōu)勢:

  • 自動釋放資源
  • 更安全優(yōu)雅

3. 原理:上下文管理器

支持 with 的對象都實現(xiàn)了:

  • __enter__()
  • __exit__()

我們也可以自定義:

class MyOpen:
    def __enter__(self):
        print("進入")
    def __exit__(self, type, val, tb):
        print("退出")

九、異常處理最佳實踐

? 建議:

  • 精準捕獲異常類型
  • 不要濫用 except Exception
  • 關(guān)鍵資源用 finallywith
  • 合理使用自定義異常

? 不建議:

  • 空 except
  • 吞掉異常不處理
  • 用異常代替邏輯判斷

到此這篇關(guān)于Python特殊字符異常處理示例詳解的文章就介紹到這了,更多相關(guān)Python異常處理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 在PyCharm中接入deepseek的API的各種方法

    在PyCharm中接入deepseek的API的各種方法

    本文詳細介紹了在PyCharm中接入DeepSeek API的步驟,包括獲取API密鑰、安裝庫、編寫代碼、運行和調(diào)試、處理響應以及可選的封裝為函數(shù)或類,此外,還提供了替代的調(diào)用方法,感興趣的小伙伴跟著小編一起來看看吧
    2025-02-02
  • python3生成隨機數(shù)實例

    python3生成隨機數(shù)實例

    這篇文章主要介紹了python3生成隨機數(shù)的用法,實例講述了基于Python的隨機數(shù)的小程序,需要的朋友可以參考下
    2014-10-10
  • python使用pandas實現(xiàn)Excel轉(zhuǎn)換為CSV文件

    python使用pandas實現(xiàn)Excel轉(zhuǎn)換為CSV文件

    在數(shù)據(jù)處理和分析中,我們經(jīng)常需要將 Excel 文件轉(zhuǎn)換為 CSV 格式,這篇文章我們主要來介紹一下python如何使用pandas實現(xiàn)Excel轉(zhuǎn)換為CSV文件,希望對大家有所幫助
    2024-10-10
  • RC4文件加密的python實現(xiàn)方法

    RC4文件加密的python實現(xiàn)方法

    這篇文章主要介紹了RC4文件加密的python實現(xiàn)方法,實例分析了RC4文件加密的原理與Python實現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • Python自動化測試selenium指定截圖文件名方法

    Python自動化測試selenium指定截圖文件名方法

    這篇文章主要介紹了Python自動化測試selenium指定截圖文件名方法,Selenium?支持?Web?瀏覽器的自動化,它提供一套測試函數(shù),用于支持?Web?自動化測試,下文基于python實現(xiàn)指定截圖文件名方法,需要的小伙伴可以參考一下
    2022-05-05
  • 教你用Python腳本快速為iOS10生成圖標和截屏

    教你用Python腳本快速為iOS10生成圖標和截屏

    這篇文章主要介紹了教你用Python快速為iOS10生成圖標和截屏的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • python 爬取學信網(wǎng)登錄頁面的例子

    python 爬取學信網(wǎng)登錄頁面的例子

    今天小編就為大家分享一篇python 爬取學信網(wǎng)登錄頁面的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Django?中使用日志的方法

    Django?中使用日志的方法

    Django?使用?Python?內(nèi)置的?logging?模塊處理系統(tǒng)日志,所以,只要掌握了?Python?中的?logging?模塊,基本也就能夠在?django?中使用日志了,本文重點給大家介紹django?中使用日志的方法,感興趣的朋友一起看看吧
    2022-07-07
  • openCV中KNN算法的實現(xiàn)

    openCV中KNN算法的實現(xiàn)

    KNN算法是一種簡單且常用的分類算法,本文主要介紹了openCV中KNN算法的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-04-04
  • ?Python?匿名函數(shù)lambda?詳情

    ?Python?匿名函數(shù)lambda?詳情

    這篇文章主要介紹了?Python?匿名函數(shù)lambda,??lambda?????函數(shù)返回函數(shù)本身而不是將其賦值給一個變量名。所以它也被稱為匿名函數(shù),下文更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-03-03

最新評論

西安市| 治多县| 文昌市| 库车县| 泰兴市| 宣武区| 文成县| 板桥市| 铁岭市| 简阳市| 广宁县| 古丈县| 平舆县| 济南市| 琼海市| 运城市| 巢湖市| 渭源县| 胶州市| 分宜县| 大冶市| 沅陵县| 瑞丽市| 淳化县| 建阳市| 西宁市| 沙雅县| 常德市| 通海县| 崇仁县| 长阳| 宣恩县| 襄垣县| 宁化县| 全椒县| 武穴市| 义马市| 姚安县| 克东县| 永年县| 老河口市|