两个吃奶一个添下面视频_人妻第一页香蕉网_欧美xxxx少妇_妺妺窝人体色www婷婷

1. try...except語句的嵌套

這種語句就是多except語句的多處理方式,下面我們通過一個例題來學(xué)習(xí)一下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,輸出結(jié)果如下:

有3個語句需要測試,請選擇(1/2/3):1
KeyError異常
有3個語句需要測試,請選擇(1/2/3):2
IndexError異常
有3個語句需要測試,請選擇(1/2/3):3
NameError異常

在這個例題中,我們首先在定義的函數(shù)中輸入一個判斷量n,然后根據(jù)n的值給出了三種異常的情況,然后我們在最后嵌套了3個try..except語句,也就是說test()語句的結(jié)果會經(jīng)過三層判斷。

2. try...except...finally語句

一個完整的異常處理機(jī)制是離不開finally語句的,這個語句的作用是不管我們的程序中是否有異常發(fā)生,finally語句下的代碼都會被執(zhí)行,它的語法格式為:

try:
    block
except [typeerror]:
    deal1
finally:
    deal2

我們通過一個例子來看一下這種結(jié)構(gòu):

def test():
  n = int(input('請輸入一個整數(shù):'))
  print(n)
try:
  test()
except KeyError:
  print('KeyError異常')
finally:
  print('finally語句已執(zhí)行')

我們分別輸入6和dotcpp來看一下輸出結(jié)果:

請輸入一個整數(shù):5
5
finally語句已執(zhí)行
請輸入一個整數(shù):dotcpp
finally語句已執(zhí)行
Traceback (most recent call last):
  File "C:/Users/test.py", line 5, in <module>
    test()
  File "C:/Users/test.py", line 2, in test
    n = int(input('請輸入一個整數(shù):'))
ValueError: invalid literal for int() with base 10: 'dotcpp'

通過這個例子我們可以看出,無論我們的程序是否出現(xiàn)異常,finally語句都會執(zhí)行。

3. try...except...else語句

我們在上面學(xué)習(xí)的finally語句是無論語句是否發(fā)生異常都會執(zhí)行的語句,下面我們來學(xué)習(xí)的try...except...else語句當(dāng)程序中未發(fā)生異常的時候才會執(zhí)行,它的語法結(jié)構(gòu)為:

try:
    block
except [typeerror ]:
    deal1
else:
    deal2

下面我們看例子:

def test():
  n = int(input('請輸入一個整數(shù):'))
  print('輸入值為:',n)
try:
  test()
except ValueError:
  print('ValueError異常')
else:
  print('當(dāng)前程序未出現(xiàn)異常')

輸出結(jié)果為:

請輸入一個整數(shù):5
輸入值為: 5
當(dāng)前程序未出現(xiàn)異常

當(dāng)我們輸入值為dotcpp時

請輸入一個整數(shù):dotcpp
ValueError異常

我們可以看出當(dāng)程序異常的時候else語句并沒執(zhí)行,這些語句的區(qū)分難度并不大,大家可以通過例子去練習(xí)一下這幾種常用的異常處理語句。


點贊(2)

C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點擊了解:

一點編程也不會寫的:零基礎(chǔ)C語言學(xué)練課程

解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程

從零到寫出一個爬蟲的Python編程課程

只會語法寫不出代碼?手把手帶你寫100個編程真題的編程百練課程

信息學(xué)奧賽或C++選手的 必學(xué)C++課程

藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程

手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程

Dotcpp在線編譯      (登錄可減少運行等待時間)