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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

零基础学习python_异常处理(32-33课)

發布時間:2023/11/27 生活经验 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 零基础学习python_异常处理(32-33课) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  我們寫完python執行的時候是不是經常會遇到報錯,而且報錯都是大片紅字,這樣給別人的感受就是你寫的程序怎么老是出問題啊,這樣我們還咋么混下去呢?于是乎,就有了異常處理的東東。

  python的try語句有兩種風格---一種是處理異常(try/except/else),一種是無論是否發生異常都將執行最后的代碼(try/finally)。

第一種處理異常如下: try: <語句> ? ? ? ?#運行代碼 except?<異常的名字>: <語句> ? ? ??  #哪個異常符合執行哪個 except?<異常的名字> as <報錯的信息>: <語句> ? ? ? ?#報錯信息可以以變量形式打印 else: <語句> ? ? ? #沒有異常時執行

第二種處理異常如下:

try:

<語句> except?<異常的名字>: <語句> ? ? ?? finally: <語句> ? #退出時總是執行 ? 舉兩個實例看下: 第一個實例:
try:open("test.txt",'r')   #打開一個不存在的文件
except IOError:    #捕捉這個異常pass       #表示實現了相應的實現,但什么也不做。

第二個例子:

?

  try語句子句形式表如下  except:??????????? 捕獲所有異常 except?name:??????? 只捕獲特定的異常 except?name as value:??? 捕獲異常和它的附加數據 except?(name1,name2):??? 捕獲任何列出的異常 else:??????????? 如果沒有異常 finally:??????? 總是執行    

常見異常:

Exception ?? ? ? ? ? ? ? ? ? ? ? 所有異常的基類

AttributeError? ? ? ? ? ? ? ? ?特性應用或賦值失敗時引發

IOError? ? ? ? ? ? ? ? ? ? ? ? ? ? ?試圖打開不存在的文件時引發

IndexError? ? ? ? ? ? ? ? ? ? ? ?在使用序列中不存在的索引時引發

KeyError ?? ? ? ? ? ? ? ? ? ? ? ? 在使用映射不存在的鍵時引發

NameError ?? ? ? ? ? ? ? ? ? ? ?在找不到名字(變量)時引發

SyntaxError? ? ? ? ? ? ? ? ? ? ?在代碼為錯誤形式時引發

TypeError?? ? ? ? ? ? ? ? ? ? ? ? 在內建操作或者函數應用于錯誤類型的對象是引發

ValueError? ? ? ? ? ? ? ? ? ? ? ?在內建操作或者函數應用于正確類型的對象,但是該對象使用不合適的值時引發

ZeroDivisionError?? ? ? ? ?在除法或者摸除操作的第二個參數為0時引發

?

還有一個就是主動觸發異常(raise)。

raise語法格式如下:

raise [Exception [, args [, traceback]]]

語句中Exception是異常的類型(例如,NameError)參數是一個異常參數值。該參數是可選的,如果不提供,異常的參數是"None"。

最后一個參數是可選的(在實踐中很少使用),如果存在,是跟蹤異常對象。

格式如下:

try:raise TypeError('類型錯誤')
except Exception as e:print(e)

舉個例子:
try:for i in range(3):for i in range(3):if i == 2:raise KeyboardInterruptprint(i,j)
except KeyboardInterrupt:print('退出!')

?

學了以上的知識點后,我們可以來看下底下這個例子:

try:f = open('test1.txt','r')    #提示:打開不存在文件就出錯了,此時還未打開文件,因此根本就沒有f這個變量f.read()
except IOError as e:print('錯誤:',e)
except SyntaxError:pass
except NameError as msg:print('錯誤:'+str(msg))
except:print('對的,都是你的錯')
else:print('讀取成功')
finally:f.close()     #無論咋樣都要關閉文件

看完之后你們覺得這個會有什么問題呢?

最后在文件關閉的時候會報錯如下:

那我們怎么規避呢?思考下吧~~~~

?

答案如下:

try:f = open('test1.txt','r')   f.read()
except IOError as e:print('錯誤:',e)
except SyntaxError:pass
except NameError as msg:print('錯誤:'+str(msg))
except:print('對的,都是你的錯')
else:print('讀取成功')
finally:if 'f' in locals():             #如果文件對象變量存在當前局部變量符號表的話就說明打開成功了f.close()

簡單吧,嘻嘻^-^

?

轉載于:https://www.cnblogs.com/leixiaobai/p/7777583.html

總結

以上是生活随笔為你收集整理的零基础学习python_异常处理(32-33课)的全部內容,希望文章能夠幫你解決所遇到的問題。

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