久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Python培訓(xùn)教程分享:Python異常機(jī)制

Python培訓(xùn)教程分享:Python異常機(jī)制

來源:千鋒教育
發(fā)布人:qyf
時(shí)間: 2021-11-30 18:00:00 1638266400

  在學(xué)習(xí)Python技術(shù)的時(shí)候,我們經(jīng)常會遇到一些異常,例如導(dǎo)致程序在運(yùn)行過程中出現(xiàn)的中斷或退出,我們都稱之為異常,大多數(shù)的異常都不會被程序處理,而是以錯誤信息的形式展現(xiàn)出來。本期Python培訓(xùn)教程就算教大家關(guān)于Python異常機(jī)制的內(nèi)容。

src=http___img3.appinn.com_images_201902_js

  Python培訓(xùn)教程分享:Python異常機(jī)制,首先我們要理解什么叫做異常?

  在程序運(yùn)行過程中,總會遇到各種各樣的問題和錯誤。有些錯誤是我們編寫代碼時(shí)自己造成的:比如語法錯誤、調(diào)用錯誤,甚至邏輯錯誤。還有一些錯誤,則是不可預(yù)料的錯誤,但是完全有可能發(fā)生的:比如文件不存在、磁盤空間不足、網(wǎng)絡(luò)堵塞、系統(tǒng)錯誤等等。

  這些導(dǎo)致程序在運(yùn)行過程中出現(xiàn)異常中斷和退出的錯誤,我們統(tǒng)稱為異常。大多數(shù)的異常都不會被程序處理,而是以錯誤信息的形式展現(xiàn)出來。

  異常的分類:

  異常有很多種類型,Python內(nèi)置了幾十種常見的異常,無需特別導(dǎo)入,直接就可使用。

  需要注意的是,所有的異常都是異常類,首字母是大寫的!

  異常的危害:

  如果程序中一旦出現(xiàn)了異常的語句代碼,則該異常就會立即中斷程序的運(yùn)行!

  因此:為了保證程序的正常運(yùn)行,提高程序健壯性和可用性。我們應(yīng)當(dāng)盡量考慮全面,將可能出現(xiàn)的異常進(jìn)行處理,而不是留在那里,任由其發(fā)生。

  基本語法:

  異常的基本結(jié)構(gòu):try except

  # (1)通用異常

  try:

  pass # 正常執(zhí)行語句

  except Exception as ex:

  pass # 異常處理語句

  # (2)指定異常

  try:

  pass # 正常執(zhí)行語句

  except <異常名>:

  pass # 異常處理語句

  #(3) 捕獲多個(gè)異常

  # 捕獲多個(gè)異常有兩種方式,第一種是一個(gè)except同時(shí)處理多個(gè)異常,不區(qū)分優(yōu)先級:

  try:

  pass # 正常執(zhí)行語句

  except (<異常名1>, <異常名2>, ...):

  pass # 異常處理語句

  # 第二種是區(qū)分優(yōu)先級的:

  try:

  pass # 正常執(zhí)行語句

  except <異常名1>:

  pass # 異常處理語句1

  except <異常名2>:

  pass # 異常處理語句2

  except <異常名3>:

  pass # 異常處理語句3

  # 異常嵌套

  try:

  try:

  with open("abc") as f:

  pass

  except NameError as e:

  print(e)

  except OSError as e:

  print("OSError:",e.strerror)

  機(jī)制說明:

  首先,執(zhí)行try子句(在關(guān)鍵字try和關(guān)鍵字except之間的語句)

  如果沒有異常發(fā)生,忽略except子句,try子句執(zhí)行后結(jié)束。

  如果在執(zhí)行try子句的過程中發(fā)生了異常,那么try子句余下的部分將被忽略。如果異常那么對應(yīng)的except子句將被執(zhí)行。

  在Python的異常中,有一個(gè)通用異常:Exception,它可以捕獲任意異常。

  finally

  try:

  pass # 正常執(zhí)行語句

  except Exception as e:

  pass # 異常處理語句

  finally:

  pass # 無論是否發(fā)生異常一定要執(zhí)行的語句,比如關(guān)閉文件,數(shù)據(jù)庫或者socket

  raise語句

  很多時(shí)候,我們需要主動拋出一個(gè)異常。Python內(nèi)置了一個(gè)關(guān)鍵字raise,可以主動觸發(fā)異常。

  raise可以拋出自定義異常,我們已將在前面看到了python內(nèi)置的一些常見的異常類型。大多數(shù)情況下,內(nèi)置異常已經(jīng)夠用了。但是有時(shí)候你還是需要自定義一些異常:自定義異常應(yīng)該繼承Exception類,直接繼承或者間接繼承都可以,例如:

  # 1.用戶自定義異常類型

  class TooLongExceptin(Exception):

  "this is user's Exception for check the length of name "

  def __init__(self, len):

  self.len = len

  def __str__(self):

  return "輸入姓名長度是" + str(self.len) + ",超過長度了"

  try:

  name = input("enter your name:")

  if len(name) > 5:

  raise TooLongExceptin(len(name))

  else:

  print(name)

  except TooLongExceptin as error: # 這里異常類型是用戶自定義的

  print("打印異常信息:", error)

  以上就是為大家介紹的Python的異常機(jī)制內(nèi)容,希望上面的介紹能夠給大家?guī)韼椭?,如果大家想要學(xué)習(xí)python或者是正在學(xué)習(xí)python知識,但是苦于沒有人指導(dǎo),那么可以添加我們的qq群-790693323,點(diǎn)擊添加(加群備注:領(lǐng)資料)不僅可以領(lǐng)取python學(xué)習(xí)資料,并且群內(nèi)還有專業(yè)的老師定期解答大家的問題,想要學(xué)習(xí)python的小伙伴,不要錯過。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
PHP數(shù)組具的特性有哪些?

一、有序集合PHP數(shù)組是一個(gè)有序的數(shù)據(jù)集合,它可以存儲多個(gè)值,并使用索引來訪問這些值。索引可以是數(shù)字或字符串,允許你以靈活的方式組織和訪...詳情>>

2023-10-13 23:46:55
C語言中定義與聲明的含義是什么?

一、定義的含義在C語言中,定義是指為變量、函數(shù)或類型分配存儲空間并指定其屬性和初始值的過程。定義的主要含義如下:分配存儲空間:定義一個(gè)...詳情>>

2023-10-13 23:32:41
APP開發(fā)中常用的開發(fā)語言都有什么?

一、JavaJava是一種廣泛使用的開發(fā)語言,尤其在Android應(yīng)用開發(fā)中得到了廣泛應(yīng)用。Java具有面向?qū)ο蟮奶匦裕梢詫?shí)現(xiàn)復(fù)雜的應(yīng)用邏輯和交互效果...詳情>>

2023-10-13 23:29:28
Python的自動化測試框架有哪些?

一、unittestunittest是Python內(nèi)置的測試框架,它受到Java的JUnit框架的啟發(fā)。unittest提供了一個(gè)面向?qū)ο蟮木幊棠P?,允許開發(fā)人員編寫測試用...詳情>>

2023-10-13 23:06:20
Web前端開發(fā)工具有哪些?

一、代碼編輯器代碼編輯器是Web前端開發(fā)的基礎(chǔ)工具之一,用于編寫、編輯和修改計(jì)算機(jī)代碼。它通常支持多種編程語言,并提供了一些便捷的功能,...詳情>>

2023-10-13 22:58:11