97**国产露脸精品国产,国内精品免费一区二区三区,国产精品久久久久久久久妇女,国内一区二区三区精品视频

您現在所在的位置:首頁 >學習資源 > Python全棧+人工智能入門教材 > Python基礎入門教程51:Python 異常處理

Python基礎入門教程51:Python 異常處理

來源:奇酷教育 發表于:

Python教程 Python基礎 Python視頻

  Python 異常處理

  python提供了兩個非常重要的功能來處理python程序在運行中出現的異常和錯誤。你可以使用該功能來調試python程序。

  異常處理: 本站Python教程會具體介紹。

  斷言(Assertions):本站Python教程會具體介紹。

  python標準異常

  異常名稱描述

  BaseException所有異常的基類

  SystemExit解釋器請求退出

  KeyboardInterrupt用戶中斷執行(通常是輸入^C)

  Exception常規錯誤的基類

  StopIteration迭代器沒有更多的值

  GeneratorExit生成器(generator)發生異常來通知退出

  StandardError所有的內建標準異常的基類

  ArithmeticError所有數值計算錯誤的基類

  FloatingPointError浮點計算錯誤

  OverflowError數值運算超出最大限制

  ZeroDivisionError除(或取模)零 (所有數據類型)

  AssertionError斷言語句失敗

  AttributeError對象沒有這個屬性

  EOFError沒有內建輸入,到達EOF 標記

  EnvironmentError操作系統錯誤的基類

  IOError輸入/輸出操作失敗

  OSError操作系統錯誤

  WindowsError系統調用失敗

  ImportError導入模塊/對象失敗

  LookupError無效數據查詢的基類

  IndexError序列中沒有此索引(index)

  KeyError映射中沒有這個鍵

  MemoryError內存溢出錯誤(對于Python 解釋器不是致命的)

  NameError未聲明/初始化對象 (沒有屬性)

  UnboundLocalError訪問未初始化的本地變量

  ReferenceError弱引用(Weak reference)試圖訪問已經垃圾回收了的對象

  RuntimeError一般的運行時錯誤

  NotImplementedError尚未實現的方法

  SyntaxErrorPython 語法錯誤

  IndentationError縮進錯誤

  TabErrorTab 和空格混用

  SystemError一般的解釋器系統錯誤

  TypeError對類型無效的操作

  ValueError傳入無效的參數

  UnicodeErrorUnicode 相關的錯誤

  UnicodeDecodeErrorUnicode 解碼時的錯誤

  UnicodeEncodeErrorUnicode 編碼時錯誤

  UnicodeTranslateErrorUnicode 轉換時錯誤

  Warning警告的基類

  DeprecationWarning關于被棄用的特征的警告

  FutureWarning關于構造將來語義會有改變的警告

  OverflowWarning舊的關于自動提升為長整型(long)的警告

  PendingDeprecationWarning關于特性將會被廢棄的警告

  RuntimeWarning可疑的運行時行為(runtime behavior)的警告

  SyntaxWarning可疑的語法的警告

  UserWarning用戶代碼生成的警告

  什么是異常?

  異常即是一個事件,該事件會在程序執行過程中發生,影響了程序的正常執行。

  一般情況下,在Python無法正常處理程序時就會發生一個異常。

  異常是Python對象,表示一個錯誤。

  當Python腳本發生異常時我們需要捕獲處理它,否則程序會終止執行。

  異常處理

  捕捉異常可以使用try/except語句。

  try/except語句用來檢測try語句塊中的錯誤,從而讓except語句捕獲異常信息并處理。

  如果你不想在異常發生時結束你的程序,只需在try里捕獲它。

  語法:

  以下為簡單的try....except...else的語法:

  try:

  <語句> #運行別的代碼

  except <名字>:

  <語句> #如果在try部份引發了'name'異常

  except <名字>,<數據>:

  <語句> #如果引發了'name'異常,獲得附加的數據

  else:

  <語句> #如果沒有異常發生

  try的工作原理是,當開始一個try語句后,python就在當前程序的上下文中作標記,這樣當異常出現時就可以回到這里,try子句先執行,接下來會發生什么依賴于執行時是否出現異常。

  如果當try后的語句執行時發生異常,python就跳回到try并執行第一個匹配該異常的except子句,異常處理完畢,控制流就通過整個try語句(除非在處理異常時又引發新的異常)。

  如果在try后的語句里發生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結束程序,并打印缺省的出錯信息)。

  如果在try子句執行時沒有發生異常,python將執行else語句后的語句(如果有else的話),然后控制流通過整個try語句。

  實例

  下面是簡單的例子,它打開一個文件,在該文件中的內容寫入內容,且并未發生異常:

  #!/usr/bin/python

  # -*- coding: UTF-8 -*-

  try:

  fh = open("testfile", "w")

  fh.write("這是一個測試文件,用于測試異常!!")

  except IOError:

  print "Error: 沒有找到文件或讀取文件失敗"

  else:

  print "內容寫入文件成功"

  fh.close()

  以上程序輸出結果:

  $ python test.py

  內容寫入文件成功

  $ cat testfile # 查看寫入的內容

  這是一個測試文件,用于測試異常!!

  實例

  下面是簡單的例子,它打開一個文件,在該文件中的內容寫入內容,但文件沒有寫入權限,發生了異常:

  #!/usr/bin/python

  # -*- coding: UTF-8 -*-

  try:

  fh = open("testfile", "w")

  fh.write("這是一個測試文件,用于測試異常!!")

  except IOError:

  print "Error: 沒有找到文件或讀取文件失敗"

  else:

  print "內容寫入文件成功"

  fh.close()

  在執行代碼前為了測試方便,我們可以先去掉 testfile 文件的寫權限,命令如下:

  chmod -w testfile

  再執行以上代碼:

  $ python test.py

  Error: 沒有找到文件或讀取文件失敗

  使用except而不帶任何異常類型

  你可以不帶任何異常類型使用except,如下實例:

  try:

  正常的操作

  ......................

  except:

  發生異常,執行這塊代碼

  ......................

  else:

  如果沒有異常執行這塊代碼

  以上方式try-except語句捕獲所有發生的異常。但這不是一個很好的方式,我們不能通過該程序識別出具體的異常信息。因為它捕獲所有的異常。

  使用except而帶多種異常類型

  你也可以使用相同的except語句來處理多個異常信息,如下所示:

  try:

  正常的操作

  ......................

  except(Exception1[, Exception2[,...ExceptionN]]]):

  發生以上多個異常中的一個,執行這塊代碼

  ......................

  else:

  如果沒有異常執行這塊代碼

  try-finally 語句

  try-finally 語句無論是否發生異常都將執行最后的代碼。

  try:

  <語句>

  finally:

  <語句> #退出try時總會執行

  raise

  實例

  #!/usr/bin/python

  # -*- coding: UTF-8 -*-

  try:

  fh = open("testfile", "w")

  fh.write("這是一個測試文件,用于測試異常!!")

  finally:

  print "Error: 沒有找到文件或讀取文件失敗"

  如果打開的文件沒有可寫權限,輸出如下所示:

  $ python test.py

  Error: 沒有找到文件或讀取文件失敗

  同樣的例子也可以寫成如下方式:

  #!/usr/bin/python

  # -*- coding: UTF-8 -*-

  try:

  fh = open("testfile", "w")

  try:

  fh.write("這是一個測試文件,用于測試異常!!")

  finally:

  print "關閉文件"

  fh.close()

  except IOError:

  print "Error: 沒有找到文件或讀取文件失敗"

  當在try塊中拋出一個異常,立即執行finally塊代碼。

  finally塊中的所有語句執行后,異常被再次觸發,并執行except塊代碼。

  參數的內容不同于異常。

  異常的參數

  一個異常可以帶上參數,可作為輸出的異常信息參數。

  你可以通過except語句來捕獲異常的參數,如下所示:

  try:

  正常的操作

  ......................

  except ExceptionType, Argument:

  你可以在這輸出 Argument 的值...

  變量接收的異常值通常包含在異常的語句中。在元組的表單中變量可以接收一個或者多個值。

  元組通常包含錯誤字符串,錯誤數字,錯誤位置。

  實例

  以下為單個異常的實例:

  #!/usr/bin/python

  # -*- coding: UTF-8 -*-

  # 定義函數

  def temp_convert(var):

  try:

  return int(var)

  except ValueError, Argument:

  print "參數沒有包含數字\n", Argument

  # 調用函數

  temp_convert("xyz");

  以上程序執行結果如下:

  $ python test.py

  參數沒有包含數字

  invalid literal for int() with base 10: 'xyz'

  觸發異常

  我們可以使用raise語句自己觸發異常

  raise語法格式如下:

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

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

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

  實例

  一個異常可以是一個字符串,類或對象。 Python的內核提供的異常,大多數都是實例化的類,這是一個類的實例的參數。

  定義一個異常非常簡單,如下所示:

  def functionName( level ):

  if level < 1:

  raise Exception("Invalid level!", level)

  # 觸發異常后,后面的代碼就不會再執行

  注意:為了能夠捕獲異常,"except"語句必須有用相同的異常來拋出類對象或者字符串。

  例如我們捕獲以上異常,"except"語句如下所示:

  try:

  正常邏輯

  except "Invalid level!":

  觸發自定義異常

  else:

  其余代碼

  實例

  #!/usr/bin/python

  # -*- coding: UTF-8 -*-

  # 定義函數

  def mye( level ):

  if level < 1:

  raise Exception("Invalid level!", level)

  # 觸發異常后,后面的代碼就不會再執行

  try:

  mye(0) // 觸發異常

  except "Invalid level!":

  print 1

  else:

  print 2

  執行以上代碼,輸出結果為:

  $ python test.py

  Traceback (most recent call last):

  File "test.py", line 11, in <module>

  mye(0)

  File "test.py", line 7, in mye

  raise Exception("Invalid level!", level)

  Exception: ('Invalid level!', 0)

  用戶自定義異常

  通過創建一個新的異常類,程序可以命名它們自己的異常。異常應該是典型的繼承自Exception類,通過直接或間接的方式。

  以下為與RuntimeError相關的實例,實例中創建了一個類,基類為RuntimeError,用于在異常觸發時輸出更多的信息。

  在try語句塊中,用戶自定義的異常后執行except塊語句,變量 e 是用于創建Networkerror類的實例。

  class Networkerror(RuntimeError):

  def __init__(self, arg):

  self.args = arg

  在你定義以上類后,你可以觸發該異常,如下所示:

  try:

  raise Networkerror("Bad hostname")

  except Networkerror,e:

  print e.args

97**国产露脸精品国产,国内精品免费一区二区三区,国产精品久久久久久久久妇女,国内一区二区三区精品视频
又黄又色的网站| av男人的天堂av| 无码人妻一区二区三区在线视频| 日韩一级视频在线观看| 日韩网站在线播放| 亚洲精品乱码久久久久久蜜桃图片| 绯色av蜜臀vs少妇| 日韩免费成人av| 亚洲av片不卡无码久久| 日韩精品123区| 懂色av蜜桃av| 97人妻精品一区二区免费| 男生草女生视频| av网站免费在线看| 天天爽天天爽天天爽| 色无极影院亚洲| 欧美黑人欧美精品刺激| 国产一卡二卡三卡四卡| 蜜桃精品一区二区| 香蕉视频黄色在线观看| 国产草草浮力影院| 亚洲成人生活片| fc2ppv在线播放| av片在线免费看| www青青草原| 成人在线短视频| 欧美日韩一区二区区| 三上悠亚 电影| 欧美xxxxx精品| www.色天使| 欧美美女性生活视频| 艳妇荡乳欲伦69影片| japan高清日本乱xxxxx| 屁屁影院国产第一页| av电影网站在线观看| 久久久99999| 亚洲最大的黄色网址| 日韩av一二区| av电影在线不卡| 日本一区二区免费视频| 手机看片日韩av| 爱爱免费小视频| 波多野结衣家庭教师在线观看 | 国产人妻大战黑人20p| 性色av浪潮av| 黄色性视频网站| 欧美熟妇精品一区二区| 国产chinesehd精品露脸| 久久黄色一级视频| 黄色工厂在线观看| 久久久久久久久久久久久久久| 亚洲国产欧美视频| 99久久99久久精品免费看小说.| 欧美乱大交做爰xxxⅹ小说| 永久av免费网站| 亚洲最大的黄色网址| 黄色录像a级片| 色欲一区二区三区精品a片| 可以直接看的无码av| 翔田千里88av中文字幕| 第四色在线视频| 国产这里有精品| 男人av资源站| 四虎成人免费影院| 一区二区视频观看| 中文字幕第24页| 蜜桃av免费在线观看| 亚洲欧美va天堂人熟伦| 免费国偷自产拍精品视频| 国产精品视频看看| www.99热| www.av免费| 校园春色 亚洲| 中文字幕乱妇无码av在线| 亚洲不卡的av| 男人女人拔萝卜视频| 最新日本中文字幕| 国产网站无遮挡| 日本黄区免费视频观看| 国产又黄又粗视频| 超级砰砰砰97免费观看最新一期 | 少妇高潮一69aⅹ| 国产精品300页| 成人免费精品动漫网站| 中文字幕乱码在线人视频| zjzjzjzjzj亚洲女人| 先锋资源av在线| 欧洲美女女同性互添| 无码任你躁久久久久久老妇| 日韩精品无码一区二区三区久久久| 一级片手机在线观看| 国产a免费视频| 成人h动漫精品一区| 最新国产精品自拍| 一区二区黄色片| 原创真实夫妻啪啪av| 伊人在线视频观看| 日本精品久久久久中文| 中文字幕狠狠干| 精品人妻一区二区三区香蕉 | 精品人妻一区二区三区香蕉| 男女性杂交内射妇女bbwxz| 久久中文免费视频| 超碰人人cao| 97人妻精品一区二区三区免| 国产麻豆xxxvideo实拍| 美女久久久久久久久久| caopeng视频| 欧美国产日韩在线观看成人| 精品国产视频在线观看| 日本性生活一级片| 欧美丰满美乳xxⅹ高潮www| 国产黄在线免费观看| 成熟妇人a片免费看网站| 9.1成人看片免费版| 加勒比婷婷色综合久久| 色呦呦一区二区| 中文字幕影音先锋| av女人的天堂| 少妇精品一区二区三区| 91杏吧porn蝌蚪| av在线播放中文字幕| 久久无码专区国产精品s| www成人啪啪18软件| 一级全黄裸体片| 欧美一区二区三区影院| 女人十八毛片嫩草av| 国产精品1000部啪视频| 性色av蜜臀av浪潮av老女人| 91av免费观看| 在线观看亚洲免费视频| 蜜臀av粉嫩av懂色av| www.色小姐com| 人妻av一区二区| 亚洲图片欧美另类| 在线精品视频播放| 伊人久久一区二区三区| 稀缺小u女呦精品呦| 能免费看av的网站| 国产麻豆视频在线观看| 久久精品无码一区二区三区毛片 | 人妻精油按摩bd高清中文字幕| 国产又色又爽又高潮免费| 91麻豆精品成人一区二区| av男人的天堂av| 一女三黑人理论片在线| 波多野结衣家庭教师| 毛片视频免费播放| 99精品全国免费观看| 亚洲911精品成人18网站| 亚洲观看黄色网| 成人国产精品久久久网站| 国产黄色录像视频| 真实乱偷全部视频| 黑丝av在线播放| 午夜少妇久久久久久久久| 成人午夜精品无码区| 很污很黄的网站| wwwwxxxx国产| 污污内射在线观看一区二区少妇| 网爆门在线观看| 亚洲国产av一区| 极品粉嫩小仙女高潮喷水久久 | 亚洲成人av免费在线观看| 欧美又粗又大又长| 精品人妻在线视频| 无码人妻精品一区二区三| 欧美性猛交xx| 三级网站免费看| 亚洲熟女www一区二区三区| 国产大尺度视频| 亚洲成a人无码| 在线播放av网址| 谁有免费的黄色网址| 调教驯服丰满美艳麻麻在线视频| 国产精品酒店视频| 青青青在线免费观看| 全黄一级裸体片| 久久久久亚洲av无码专区首jn| 在线观看国产三级| 黄色香蕉视频在线观看| 男人晚上看的视频| 欧美bbbbb性bbbbb视频| 日本爱爱小视频| 国产视频123区| 亚洲日本精品视频| 毛茸茸多毛bbb毛多视频| 亚洲色图第四色| 亚洲色图日韩精品| 非洲一级黄色片| 成人免费无遮挡无码黄漫视频| 中文视频在线观看| 欧美 变态 另类 人妖| 91人人澡人人爽| 日韩Av无码精品| 在线天堂www在线国语对白| 一女三黑人理论片在线| 第四色在线视频| 极品久久久久久久| 国精产品久拍自产在线网站|