国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

python的錯誤與異常處理

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 14:21:03
文檔

python的錯誤與異常處理

python的錯誤與異常處理:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于python的錯誤與異常處理,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對你有所幫助。一:語法錯誤syntax errors熟悉語法!二:異常①打印錯誤信息時(shí),異常的類型作為異常的內(nèi)置名顯示,并以調(diào)用棧的形式顯示具體信息②
推薦度:
導(dǎo)讀python的錯誤與異常處理:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于python的錯誤與異常處理,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對你有所幫助。一:語法錯誤syntax errors熟悉語法!二:異常①打印錯誤信息時(shí),異常的類型作為異常的內(nèi)置名顯示,并以調(diào)用棧的形式顯示具體信息②

本篇文章給大家?guī)淼膬?nèi)容是關(guān)于python的錯誤與異常處理,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對你有所幫助。

一:語法錯誤syntax errors

熟悉語法!

二:異常

①打印錯誤信息時(shí),異常的類型作為異常的內(nèi)置名顯示,并以調(diào)用棧的形式顯示具體信息

②常見的異常:
NameError、
ZeropisionError、
TypeError
SyntaxError
IndexError 索引超出序列范圍
KeyError 請求一個不存在的字典關(guān)鍵字
IOError 輸入輸出錯誤
AttributeError 嘗試訪問未知的對象屬性
三:異常處理

while True:
try:
x = int(input("Please enter a number: "))
break
except ValueError:
print("Oops! That was no valid number. Try again ")

try語句按照如下方式工作;
①首先,執(zhí)行try子句(在關(guān)鍵字try和關(guān)鍵字except之間的語句)
②如果沒有異常發(fā)生,忽略except子句,try子句執(zhí)行后結(jié)束。
③如果在執(zhí)行try子句的過程中發(fā)生了異常,那么try子句余下的部分將被忽略。
④如果異常的類型和 except 之后的名稱相符,那么對應(yīng)的except子句將被執(zhí)行。最后執(zhí)行 try 語句之后的代碼。
⑤如果一個異常沒有與任何的except匹配,那么這個異常將會傳遞給上層的try中。
⑥一個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有一個分支會被執(zhí)行。
⑦一個except子句可以同時(shí)處理多個異常,這些異常將被放在一個括號里成為一個元組。

except (RuntimeError, TypeError, NameError):
pass

⑧最后一個except子句可以忽略異常的名稱,它將被當(dāng)作通配符使用。你可以使用這種方法打印一個錯誤信息,然后再次把異常拋出。
⑨t(yī)ry except 語句還有一個可選的else子句,如果使用這個子句,那么必須放在所有的except子句之后。這個子句將在try子句沒有發(fā)生任何異常的時(shí)候執(zhí)行.

三:拋出異常

Python 使用 raise 語句拋出一個指定的異常
raise 唯一的一個參數(shù)指定了要被拋出的異常。
它必須是一個異常的實(shí)例或者是異常的類(也就是 Exception 的子類)

四:用戶自定義異常

可以通過創(chuàng)建一個新的異常類來擁有自己的異常。
異常類繼承自 Exception 類,可以直接繼承,或者間接繼承。
當(dāng)創(chuàng)建一個模塊有可能拋出多種不同的異常時(shí),
一種通常的做法是為這個包建立一個基礎(chǔ)異常類,

五:定義清理行為

try:
 raise KeyboardInterrupt
 finanlly:
 print("dooo")

不管 try 子句里面有沒有發(fā)生異常,finally 子句都會執(zhí)行
如果一個異常在 try 子句里(或者在 except 和 else 子句里)被拋出,
而又沒有任何的 except 把它截住,那么這個異常會在 finally 子句執(zhí)行后再次被拋出

六:擴(kuò)展------------->斷言機(jī)制

assert 等價(jià)于布爾真的判定,不滿足拋出異常AssertionError
用途: 防御性的程序
運(yùn)行時(shí)需要邏輯檢查
參考文獻(xiàn):《python使用斷言的最佳時(shí)機(jī)》

# ---------------------------------------------------------------------#
# 異常處理
# ---------------------------------------------------------------------#
while True:
 try:
 x = int(input("Please enter a number: "))
 break
 except ValueError:
 print("Oops! That was no valid number. Try again ")

# ---------------------------------------------------------------------#
# 拋出異常
# ---------------------------------------------------------------------#
"""
try:
 raise NameError('HiThere')
except NameError:
 print('An exception flew by!')
 raise
"""

# ---------------------------------------------------------------------#
# 用戶自定義異常
# ---------------------------------------------------------------------#
class MyError(Exception): # 繼承自Exception
 def __init__(self, value): # 構(gòu)造函數(shù)重寫
 self.value = value

 def __str__(self):
 return repr(self.value)
try:
 raise MyError(2*2) # 拋出異常
except MyError as e:
 print('My exception occurred, value:', e.value)
# 當(dāng)創(chuàng)建一個模塊有可能拋出多種不同的異常時(shí),
# 一種通常的做法是為這個包建立一個基礎(chǔ)異常類,
# 然后基于這個基礎(chǔ)類為不同的錯誤情況創(chuàng)建不同的子類
class Error(Exception):
 """Base class for exceptions in this module."""
 pass
class InputError(Error):
 """Exception raised for errors in the input.
 Attributes:
 expression -- input expression in which the error occurred
 message -- explanation of the error
 """
 def __init__(self, expression, message):
 self.expression = expression
 self.message = message
class TransitionError(Error):
 """Raised when an operation attempts a state transition that's not
 allowed.

 Attributes:
 previous -- state at beginning of transition
 next -- attempted new state
 message -- explanation of why the specific transition is not allowed
 """

 def __init__(self, previous, next1, message):
 self.previous = previous
 self.next = next1
 self.message = message


try:
 raise InputError(2*2, 45) # 拋出異常
except InputError: # 處理異常
 print('My exception occurred')

# ---------------------------------------------------------------------#
# 定義清理行為
# ---------------------------------------------------------------------#

def divide(x, y):
 try:
 result = x / y
 except ZeroDivisionError:
 print("division by zero!")
 else: # 沒有異常的時(shí)執(zhí)行
 print("result is", result)
 finally: # 無論在任何情況下都會執(zhí)行的清理行為
 print("executing finally clause")


# 一個異常在 try 子句里(或者在 except 和 else 子句里)被拋出,
# 而又沒有任何的 except 把它截住,那么這個異常會在 finally 子句執(zhí)行后再次被拋出
# divide("2", "1") #從測試代碼

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

python的錯誤與異常處理

python的錯誤與異常處理:本篇文章給大家?guī)淼膬?nèi)容是關(guān)于python的錯誤與異常處理,有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對你有所幫助。一:語法錯誤syntax errors熟悉語法!二:異常①打印錯誤信息時(shí),異常的類型作為異常的內(nèi)置名顯示,并以調(diào)用棧的形式顯示具體信息②
推薦度:
標(biāo)簽: 處理 錯誤 異常
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 国产一区视频在线 | 91久久精品一区二区三区 | 国产精品精品视频 | 日韩欧美一区二区三区免费观看 | 精品欧美一区二区三区精品久久 | 成人毛片国产a | 全免费a级毛片免费毛视频 热re91久久精品国产91热 | 成人午夜精品久久久久久久小说 | 91香蕉国产亚洲一区二区三区 | 精品视频第一页 | 国产喷水在线观看 | 欧美不卡激情三级在线观看 | 国产激情一区二区三区成人91 | 欧美日本国产 | 国产一区二区日韩欧美在线 | 精品一区二区三区五区六区 | 一级成人a毛片免费播放 | 欧美日韩一区二区在线 | 久久久久久国产a免费观看黄色大片 | 国产资源一区 | 一级免费a| 久久精品亚洲欧美日韩久久 | www.a级片| 欧美专区亚洲 | 最新国产精品视频 | 久国产精品视频 | 欧美日韩色图 | 欧美阿v高清资源在线 | 欧美综合在线视频 | 黄网站色视频免费观看 | 亚洲一区二区三区在线播放 | 欧美精品国产综合久久 | zozozo性欧美禽交3 | 久久久久久久国产a∨ | 亚洲国产精品欧美日韩一区二区 | 久久久久久久国产精品 | 91精品国产9l久久久久 | 国产欧美亚洲精品 | 日韩亚洲欧洲在线com91tv | 国内精品一区二区三区αv 韩国欧美 | 国产色综合久久无码有码 |