欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python常見異常類型處理

 更新時間:2021年12月12日 09:33:11   作者:C語言中國網(wǎng)  
這篇文章主要個大家分享的是Python常見異常類型處理,編寫程序的過程,難免會遇到一些錯誤,程序邏輯又或者運(yùn)行與系統(tǒng)發(fā)生各種沖突等等,下面我們就來看看那些我們在編程中常遇到的異常都是怎么處理的吧,需要的小伙伴可以參考一下

前言:

開發(fā)人員在編寫程序時,難免會遇到錯誤,有的是編寫人員疏忽造成的語法錯誤,有的是程序內(nèi)部隱含邏輯問題造成的數(shù)據(jù)錯誤,還有的是程序運(yùn)行時與系統(tǒng)的規(guī)則沖突造成的系統(tǒng)錯誤,等等。

總的來說,編寫程序時遇到的錯誤可大致分為 2 類,分別為語法錯誤和運(yùn)行時錯誤。

1.Python語法錯誤

語法錯誤,也就是解析代碼時出現(xiàn)的錯誤。當(dāng)代碼不符合 Python 語法規(guī)則時,Python解釋器在解析時就會報出 SyntaxError 語法錯誤,與此同時還會明確指出最早探測到錯誤的語句。

例如:

print "Hello,World!"

我們知道,Python 3 已不再支持上面這種寫法,所以在運(yùn)行時,解釋器會報如下錯誤:

SyntaxError: Missing parentheses in call to 'print'

語法錯誤多是開發(fā)者疏忽導(dǎo)致的,屬于真正意義上的錯誤,是解釋器無法容忍的,因此,只有將程序中的所有語法錯誤全部糾正,程序才能執(zhí)行。

2.Python運(yùn)行時錯誤

運(yùn)行時錯誤,即程序在語法上都是正確的,但在運(yùn)行時發(fā)生了錯誤。

例如:

a = 1/0

上面這句代碼的意思是“用 1 除以 0,并賦值給 a 。

因?yàn)?0 作除數(shù)是沒有意義的,所以運(yùn)行后會產(chǎn)生如下錯誤:

>>> a = 1/0
Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    a = 1/0
ZeroDivisionError: division by zero

以上運(yùn)行輸出結(jié)果中,前兩段指明了錯誤的位置,最后一句表示出錯的類型。在 Python 中,把這種運(yùn)行時產(chǎn)生錯誤的情況叫做異常(Exceptions)。這種異常情況還有很多,常見的幾種異常情況如表 1 所示

表 1 Python常見異常類型:

異常類型 含義 實(shí)例
AssertionError 當(dāng) assert 關(guān)鍵字后的條件為假時,程序運(yùn)行會停止并拋出 AssertionError 異常 >>> demo_list = ['C語言中文網(wǎng)']
>>> assert len(demo_list) > 0
>>> demo_list.pop()
'C語言中文網(wǎng)'
>>> assert len(demo_list) > 0
Traceback (most recent call last):
? File "<pyshell#6>", line 1, in <module>
??? assert len(demo_list) > 0
AssertionError
AttributeError 當(dāng)試圖訪問的對象屬性不存在時拋出的異常 >>> demo_list = ['C語言中文網(wǎng)']
>>> demo_list.len
Traceback (most recent call last):
? File "<pyshell#10>", line 1, in <module>
??? demo_list.len
AttributeError: 'list' object has no attribute 'len'
IndexError 索引超出序列范圍會引發(fā)此異常 >>> demo_list = ['C語言中文網(wǎng)']
>>> demo_list[3]
Traceback (most recent call last):
? File "<pyshell#8>", line 1, in <module>
??? demo_list[3]
IndexError: list index out of range
KeyError 字典中查找一個不存在的關(guān)鍵字時引發(fā)此異常 >>> demo_dict={'C語言中文網(wǎng)':"c.biancheng.net"}
>>> demo_dict["C語言"]
Traceback (most recent call last):
? File "<pyshell#12>", line 1, in <module>
??? demo_dict["C語言"]
KeyError: 'C語言'
NameError 嘗試訪問一個未聲明的變量時,引發(fā)此異常 >>> C語言中文網(wǎng)
Traceback (most recent call last):
? File "<pyshell#15>", line 1, in <module>
??? C語言中文網(wǎng)
NameError: name 'C語言中文網(wǎng)' is not defined
TypeError 不同類型數(shù)據(jù)之間的無效操作 >>> 1+'C語言中文網(wǎng)'
Traceback (most recent call last):
? File "<pyshell#17>", line 1, in <module>
??? 1+'C語言中文網(wǎng)'
TypeError: unsupported operand type(s) for +: 'int' and 'str'
ZeroDivisionError 除法運(yùn)算中除數(shù)為 0 引發(fā)此異常 >>> a = 1/0
Traceback (most recent call last):
? File "<pyshell#2>", line 1, in <module>
??? a = 1/0
ZeroDivisionError: division by zero

提示:表中的異常類型不需要記住,只需簡單了解即可。

當(dāng)一個程序發(fā)生異常時,代表該程序在執(zhí)行時出現(xiàn)了非正常的情況,無法再執(zhí)行下去。默認(rèn)情況下,程序是要終止的。如果要避免程序退出,可以使用捕獲異常的方式獲取這個異常的名稱,再通過其他的邏輯代碼讓程序繼續(xù)運(yùn)行,這種根據(jù)異常做出的邏輯處理叫作異常處理。

開發(fā)者可以使用異常處理全面地控制自己的程序。異常處理不僅僅能夠管理正常的流程運(yùn)行,還能夠在程序出錯時對程序進(jìn)行必的處理。大大提高了程序的健壯性和人機(jī)交互的友好性。

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

相關(guān)文章

  • Python 調(diào)用DLL操作抄表機(jī)

    Python 調(diào)用DLL操作抄表機(jī)

    Python 調(diào)用DLL的實(shí)用代碼。
    2009-01-01
  • python解壓zip包中文亂碼解決方法

    python解壓zip包中文亂碼解決方法

    這篇文章主要介紹了python解壓zip包中文亂碼解決方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • python判斷字符串是否純數(shù)字的方法

    python判斷字符串是否純數(shù)字的方法

    這篇文章主要介紹了python判斷字符串是否純數(shù)字的方法,通過isdigit方法進(jìn)行判斷,并給出了改進(jìn)的實(shí)例及采用正則判斷的用法,具有一定的借鑒價值,需要的朋友可以參考下
    2014-11-11
  • Python實(shí)現(xiàn)批量下載文件的示例代碼

    Python實(shí)現(xiàn)批量下載文件的示例代碼

    下載文件是我們在日常工作中常常要做的一件事情,當(dāng)我們需要從互聯(lián)網(wǎng)上批量下載大量文件時,手動一個一個去下載顯然不夠高效,所以本文為大家介紹一下如何利用python批量下載文件吧
    2023-11-11
  • python中使用smtplib和email模塊發(fā)送郵件實(shí)例

    python中使用smtplib和email模塊發(fā)送郵件實(shí)例

    python腳本發(fā)郵件,一般會用到smtplib和email這兩個模塊??纯丛撃K怎么使用,先看smtplib模塊。 smtplib模塊定義了一個簡單的SMTP客戶端,可以用來在互聯(lián)網(wǎng)上發(fā)送郵件
    2014-04-04
  • Python使用FTP上傳文件的實(shí)現(xiàn)示例

    Python使用FTP上傳文件的實(shí)現(xiàn)示例

    本文主要介紹了Python使用FTP上傳文件的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • python?rsa和Crypto.PublicKey.RSA?模塊詳解

    python?rsa和Crypto.PublicKey.RSA?模塊詳解

    這篇文章主要介紹了python?rsa和Crypto.PublicKey.RSA?模塊,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • python?OpenCV計算圖片相似度的5種算法

    python?OpenCV計算圖片相似度的5種算法

    本文主要介紹了python?OpenCV計算圖片相似度的5種算法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • python爬取百度貼吧前1000頁內(nèi)容(requests庫面向?qū)ο笏枷雽?shí)現(xiàn))

    python爬取百度貼吧前1000頁內(nèi)容(requests庫面向?qū)ο笏枷雽?shí)現(xiàn))

    這篇文章主要介紹了python爬取百度貼吧前1000頁內(nèi)容(requests庫面向?qū)ο笏枷雽?shí)現(xiàn)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • python爬蟲 urllib模塊發(fā)起post請求過程解析

    python爬蟲 urllib模塊發(fā)起post請求過程解析

    這篇文章主要介紹了python爬蟲 urllib模塊發(fā)起post請求過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08

最新評論