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

歡迎訪問 生活随笔!

生活随笔

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

python

python中使用什么来实现异常捕捉_Python异常原理及异常捕捉实现过程解析

發布時間:2025/3/12 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中使用什么来实现异常捕捉_Python异常原理及异常捕捉实现过程解析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于選課程序,最近著實有點忙,沒機會復習os、pickle兩部分模塊,所以數據儲存和字典讀取成為了一個問題,大致原理知道,但是具體操作可能還是得返回去再好好看看,所以目前就提前開始學習新的知識了,雖然今天感覺str的相關方法忘的是干干凈凈的,但是我有pycharm。

今天主要內容是關于異常,其實有點想最開始剛學的感覺,比較簡單。

異常就是程序運行時發生錯誤的信號(在程序出現錯誤時,則會產生一個異常,若程序沒有處理它,則會拋出該異常,程序的運行也隨之終止),在python中,錯誤觸發的異常如下:

錯誤被分為了兩種:

1.語法錯誤,基本pycharm都會幫你顯示出來,不該犯的

2.邏輯錯誤,不太容易看出來,pycharm也不管,只有Python解釋器是真愛,但是也得等到真的運行的時候

#TypeError:int類型不可迭代

for i in 3:

pass

#ValueError

num=input(">>: ") #輸入hello

int(num)

#NameError

aaa

#IndexError

l=['egon','aa']

l[3]

#KeyError

dic={'name':'egon'}

dic['age']

#AttributeError

class Foo:pass

Foo.x

#ZeroDivisionError:無法完成計算

res1=1/0

res2=1+'str'

下面是今天最為重要的部分:

在python中不同的異常可以用不同的類型(python中統一了類與類型,類型即類)去標識,一個異常標識一種錯誤

AttributeError 試圖訪問一個對象沒有的樹形,比如foo.x,但是foo沒有屬性x

IOError 輸入/輸出異常;基本上是無法打開文件

ImportError 無法引入模塊或包;基本上是路徑問題或名稱錯誤

IndentationError 語法錯誤(的子類) ;代碼沒有正確對齊

IndexError 下標索引超出序列邊界,比如當x只有三個元素,卻試圖訪問x[5]

KeyError 試圖訪問字典里不存在的鍵

KeyboardInterrupt Ctrl+C被按下

NameError 使用一個還未被賦予對象的變量

SyntaxError Python代碼非法,代碼不能編譯(個人認為這是語法錯誤,寫錯了)

TypeError 傳入對象類型與要求的不符合

UnboundLocalError 試圖訪問一個還未被設置的局部變量,基本上是由于另有一個同名的全局變量,

導致你以為正在訪問它

ValueError 傳入一個調用者不期望的值,即使值的類型是正確的

更多異常(有空還是要挨個錯一遍):

ArithmeticError

AssertionError

AttributeError

BaseException

BufferError

BytesWarning

DeprecationWarning

EnvironmentError

EOFError

Exception

FloatingPointError

FutureWarning

GeneratorExit

ImportError

ImportWarning

IndentationError

IndexError

IOError

KeyboardInterrupt

KeyError

LookupError

MemoryError

NameError

NotImplementedError

OSError

OverflowError

PendingDeprecationWarning

ReferenceError

RuntimeError

RuntimeWarning

StandardError

StopIteration

SyntaxError

SyntaxWarning

SystemError

SystemExit

TabError

TypeError

UnboundLocalError

UnicodeDecodeError

UnicodeEncodeError

UnicodeError

UnicodeTranslateError

UnicodeWarning

UserWarning

ValueError

Warning

ZeroDivisionError

為了保證程序的健壯性與容錯性,即在遇到錯誤時程序不會崩潰,我們需要對異常進行處理,

如果錯誤發生的條件是可預知的,我們需要用if進行處理:在錯誤發生之前進行預防

之前也是有操作過的:

AGE=10

while True:

age=input('>>: ').strip()

if age.isdigit(): #只有在age為字符串形式的整數時,下列代碼才不會出錯,該條件是可預知的

age=int(age)

if age == AGE:

print('you got it')

break

如果錯誤發生的條件是不可預知的,則需要用到try...except:在錯誤發生之后進行處理

#基本語法為

try:

被檢測的代碼塊

except 異常類型:

try中一旦檢測到異常,就執行這個位置的邏輯

#舉例

try:

f=open('a.txt')

g=(line.strip() for line in f)

print(next(g))

print(next(g))

print(next(g))

print(next(g))

print(next(g))

except StopIteration:

f.close()

#1 異常類只能用來處理指定的異常情況,如果非指定異常則無法處理。

s1 = 'hello'

try:

int(s1)

except IndexError as e: # 未捕獲到異常,程序直接報錯

print e

#2 多分支

s1 = 'hello'

try:

int(s1)

except IndexError as e:

print(e)

except KeyError as e:

print(e)

except ValueError as e:

print(e)

#3 萬能異常Exception

s1 = 'hello'

try:

int(s1)

except Exception as e:

print(e)

#4 多分支異常與萬能異常

#4.1 如果你想要的效果是,無論出現什么異常,我們統一丟棄,或者使用同一段代碼邏輯去處理他們,那么騷年,大膽的去做吧,只有一個Exception就足夠了。

#4.2 如果你想要的效果是,對于不同的異常我們需要定制不同的處理邏輯,那就需要用到多分支了。

#5 也可以在多分支后來一個Exception

s1 = 'hello'

try:

int(s1)

except IndexError as e:

print(e)

except KeyError as e:

print(e)

except ValueError as e:

print(e)

except Exception as e:

print(e)

#6 異常的其他機構

s1 = 'hello'

try:

int(s1)

except IndexError as e:

print(e)

except KeyError as e:

print(e)

except ValueError as e:

print(e)

#except Exception as e:

# print(e)

else:

print('try內代碼塊沒有異常則執行我')

finally:

print('無論異常與否,都會執行該模塊,通常是進行清理工作')

#7 主動觸發異常

try:

raise TypeError('類型錯誤')

except Exception as e:

print(e)

#8 自定義異常

class EgonException(BaseException):

def __init__(self,msg):

self.msg=msg

def __str__(self):

return self.msg

try:

raise EgonException('類型錯誤')

except EgonException as e:

print(e)

#9 斷言:assert 條件

assert 1 == 1

assert 1 == 2

#10 總結try..except

異常捕捉的優勢:

1:把錯誤處理和真正的工作分開來

2:代碼更易組織,更清晰,復雜的工作任務更容易實現;

3:毫無疑問,更安全了,不至于由于一些小的疏忽而使程序意外崩潰了;

主要是理論知識,后期使用才是關鍵,就像我要復習的pickle和os模塊一樣,就是這些了。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

總結

以上是生活随笔為你收集整理的python中使用什么来实现异常捕捉_Python异常原理及异常捕捉实现过程解析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美xx视频 | 欧美国产日韩在线观看 | 亚洲激情一区 | 国产精品88 | 久精品国产 | 国产精品亚洲成在人线 | 波多野结衣一区 | 拔擦8x成人一区二区三区 | 欧美国产日韩在线观看成人 | 1024国产在线 | 天天综合国产 | 久久久久久久久久一区二区 | 成人美女毛片 | 96看片| 青娱乐在线视频观看 | 成人夜视频 | 谁有免费的黄色网址 | 色综合图片| 玖玖热在线视频 | 熟妇人妻系列aⅴ无码专区友真希 | 毛片3 | 日本熟妇毛耸耸xxxxxx | 爆操女秘书| 极品少妇av | 波多野结衣伦理 | 在线视频 一区二区 | 亚洲精品国产视频 | h官场少妇第三部分 | 田中瞳av | 免费国偷自产拍精品视频 | 日本天堂在线视频 | 红桃视频成人在线 | 色网站免费看 | 肉色欧美久久久久久久免费看 | 亚洲三级在线观看 | 在线黄色网页 | 黄色日韩 | 国产伦精品一区二区三区视频黑人 | 男男肉耽高h彩漫 | 精品久久香蕉国产线看观看亚洲 | 妞干网av| 日韩影视一区二区三区 | 亚洲精品一区二区在线观看 | 播放黄色一级片 | 国产影音先锋 | 日本人妖xxxx | 99精品欧美一区二区蜜桃免费 | 欧美aa在线 | 久久影院视频 | 成品人视频ww入口 | 欧美又黑又粗 | 日本一本二本三区免费 | 日本一区二区三区精品 | 欧美激情3p| 欧美亚洲免费 | jizz成熟丰满日本少妇 | 国产宾馆实践打屁股91 | 欧美黄色一级视频 | 波多野结衣mp4| 一区二区三区日 | 俺也去网站 | 国产男女网站 | 一级黄色小视频 | 一卡二卡三卡在线观看 | 初尝黑人巨炮波多野结衣 | 精品人妻无码一区二区色欲产成人 | 国产一级片在线播放 | 国产精品久久在线 | 人妻熟女一区二区三区 | 亚洲三级电影 | 成人日韩在线观看 | 亚洲影院在线 | 青草操| 123毛片| 91视频免费网址 | 日韩动漫av | 国产精品久久久久一区二区三区 | 久久五十路| 中文字幕亚洲一区二区三区五十路 | 亚洲欧美日韩图片 | 成人免费不卡视频 | 亚洲天堂av在线免费观看 | 精品久久人人妻人人做人人 | 欧美日韩一区二区三区四区五区 | 超碰人人搞 | 日批视频免费在线观看 | 天天综合天天添夜夜添狠狠添 | 欧美黄页 | 一级片一级片 | 国产亚洲精品精品精品 | 中文天堂在线视频 | 懂色av色吟av夜夜嗨 | 久久成人国产精品入口 | 国产精品伦 | 天天射天天搞 | 蜜桃91麻豆精品一二三区 | а√天堂www在线天堂小说 | 久久成人国产精品入口 | 性生交大片免费看女人按摩 |