python异常处理操作语句_异常处理语句(2)
1.?try...except語句的嵌套
這種語句就是多except語句的多處理方式,下面我們通過一個例題來學習一下try...except的語句嵌套。def?test():
n?=?int(input('有3個語句需要測試,請選擇(1/2/3):'))
if?n?==?1:#keyError異常情況
my_dict?=?{'dotcpp':?123}
print(my_dict['dot'])
elif?n?==?2:#IndexError異常
my_list?=?[1,?2,?3,?4,?5]
print(my_list[100])
elif?n?==?3:#NameError異常
print('不存在的變量dotcpp:',?dotcpp)
try:
try:
try:
test()
except?KeyError:
print('KeyError異常')
except?IndexError:
print('IndexError異常')
except?NameError:
print('NameError異常')
我們分別測試1/2/3,輸出結果如下:有3個語句需要測試,請選擇(1/2/3):1
KeyError異常
有3個語句需要測試,請選擇(1/2/3):2
IndexError異常
有3個語句需要測試,請選擇(1/2/3):3
NameError異常
在這個例題中,我們首先在定義的函數中輸入一個判斷量n,然后根據n的值給出了三種異常的情況,然后我們在最后嵌套了3個try..except語句,也就是說test()語句的結果會經過三層判斷。
2.?try...except...finally語句
一個完整的異常處理機制是離不開finally語句的,這個語句的作用是不管我們的程序中是否有異常發生,finally語句下的代碼都會被執行,它的語法格式為:try:
block
except?[typeerror]:
deal1
finally:
deal2
我們通過一個例子來看一下這種結構:def?test():
n?=?int(input('請輸入一個整數:'))
print(n)
try:
test()
except?KeyError:
print('KeyError異常')
finally:
print('finally語句已執行')
我們分別輸入6和dotcpp來看一下輸出結果:請輸入一個整數:5
5
finally語句已執行
請輸入一個整數:dotcpp
finally語句已執行
Traceback?(most?recent?call?last):
File?"C:/Users/test.py",?line?5,?in?
test()
File?"C:/Users/test.py",?line?2,?in?test
n?=?int(input('請輸入一個整數:'))
ValueError:?invalid?literal?for?int()?with?base?10:?'dotcpp'
通過這個例子我們可以看出,無論我們的程序是否出現異常,finally語句都會執行。
3.?try...except...else語句
我們在上面學習的finally語句是無論語句是否發生異常都會執行的語句,下面我們來學習的try...except...else語句當程序中未發生異常的時候才會執行,它的語法結構為:try:
block
except?[typeerror?]:
deal1
else:
deal2
下面我們看例子:def?test():
n?=?int(input('請輸入一個整數:'))
print('輸入值為:',n)
try:
test()
except?ValueError:
print('ValueError異常')
else:
print('當前程序未出現異常')
輸出結果為:請輸入一個整數:5
輸入值為:?5
當前程序未出現異常
當我們輸入值為dotcpp時請輸入一個整數:dotcpp
ValueError異常
我們可以看出當程序異常的時候else語句并沒執行,這些語句的區分難度并不大,大家可以通過例子去練習一下這幾種常用的異常處理語句。
總結
以上是生活随笔為你收集整理的python异常处理操作语句_异常处理语句(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android获取imei兼容_Andr
- 下一篇: python定时播放音乐程序_pytho