摘要:程序報(bào)錯(cuò)太常見了,我們可以想辦法修理好它捕獲異常有可能出錯(cuò)的語句出錯(cuò)了沒錯(cuò)的時(shí)候運(yùn)行后面指定了報(bào)錯(cuò)的異常類,在中重要的內(nèi)建異常類有常規(guī)錯(cuò)誤的基類對象沒有這個(gè)屬性輸入輸出操作失敗序列中沒有此索引映射中沒有這個(gè)鍵未聲明初始化對象沒有屬性語法錯(cuò)誤
程序報(bào)錯(cuò)?太常見了,我們可以想辦法修理好它捕獲異常
number="hello" try: #有可能出錯(cuò)的語句 number=int(number) except Exception: print("出錯(cuò)了") else: print("沒錯(cuò)的時(shí)候運(yùn)行")
except后面指定了報(bào)錯(cuò)的異常類,在python中重要的內(nèi)建異常類有:
Exception 常規(guī)錯(cuò)誤的基類
AttributeError 對象沒有這個(gè)屬性
IOError 輸入/輸出操作失敗
IndexError 序列中沒有此索引(index)
KeyError 映射中沒有這個(gè)鍵
NameError 未聲明/初始化對象 (沒有屬性)
SyntaxError Python 語法錯(cuò)誤
SystemError 一般的解釋器系統(tǒng)錯(cuò)誤
ValueError 傳入無效的參數(shù)
...
除了上述列出來的,其實(shí)python的異常類還有很多,當(dāng)在except后面指定異常類之后,那么只有報(bào)這個(gè)類型異常的時(shí)候才會(huì)輸出“出錯(cuò)了”
當(dāng)然我們也可以去掉Exception,這樣任何異常都可以捕獲到
捕獲多個(gè)異常如何做
#指定多個(gè)異常 number="hello" try: #有可能出錯(cuò)的語句 number=int(number) except ValueError: print("ValueError出錯(cuò)了") except Exception: print("Exception出錯(cuò)了") else: print("沒錯(cuò)的時(shí)候執(zhí)行的語句") finally: print("無論發(fā)不發(fā)生異常,都會(huì)執(zhí)行的語句") #指定多個(gè)異常 number=[1,2,3] try: #有可能出錯(cuò)的語句 number=number[4] except (ValueError,NameError,IndexError): print("出錯(cuò)了") else: print("沒錯(cuò)的時(shí)候運(yùn)行")自定義異常類
盡管python給我們提供了很多內(nèi)置的異常類,但是還是不能滿足精確定位的問題,我們可以通過創(chuàng)建一個(gè)新的exception類擁有自己的異常,異常應(yīng)該繼承自Exception類,可以直接繼承,也可以間接繼承
class MyError(Exception): def __init__(self): pass def __str__(self): return "this is error" def Calc(): raise MyError() #通過raise語句拋出一個(gè)錯(cuò)誤的實(shí)例 Calc()
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/41175.html
摘要:在前面介紹語法的過程中,我們已經(jīng)接觸到了解釋器給的錯(cuò)誤和異常,但并沒有詳細(xì)講解它們。解釋器這樣報(bào)出的好處是告訴我們哪一行代碼出錯(cuò)了錯(cuò)誤的類型是什么。 在前面介紹Python語法的過程中,我們已經(jīng)接觸到了解釋器給的錯(cuò)誤和異常,但并沒有詳細(xì)講解它們?,F(xiàn)在我們就全面的來學(xué)習(xí)Python是對語法錯(cuò)誤等錯(cuò)誤進(jìn)行定義和處理的,這包括至少有兩種可以區(qū)分的錯(cuò)誤,它們是語法錯(cuò)誤和異常。 語法錯(cuò)誤 Pyt...
摘要:為此,我們需要使用不同的異常處理程序定義多個(gè)子句。此異常由另一個(gè)異常子句處理,但除外。提高并重新提出異常中的關(guān)鍵字用于強(qiáng)制發(fā)生異常。如果沒有異常處理代碼,程序?qū)⒅淮蛴″e(cuò)誤消息并終止。因此,我們將使用子句,在記錄錯(cuò)誤后重新引發(fā)異常。 showImg(https://segmentfault.com/img/remote/1460000019165381?w=329&h=388); 來源...
摘要:紅色箭頭所指就是異常值。箱型圖這種方法是利用箱型圖的四分位距對異常值進(jìn)行檢測,也叫。異常值總結(jié)以上是對異常值檢測和處理方法的匯總。 作者:xiaoyu 微信公眾號:Python數(shù)據(jù)科學(xué) 知乎:python數(shù)據(jù)分析師 showImg(https://segmentfault.com/img/remote/1460000015926587);上一篇分享了關(guān)于數(shù)據(jù)缺失值處理的一些方法,鏈接...
摘要:的最常見的作用是構(gòu)造異常實(shí)例并拋出它。子句組只在執(zhí)行過程中的異常產(chǎn)生時(shí)執(zhí)行。每個(gè)子句指定了需要處理的異常的特定類。將強(qiáng)制轉(zhuǎn)為字符串會(huì)得到由返回的人類可讀的字符串。 3.4 異常 來源:3.4 Exceptions 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 程序員必須總是留意程序中可能出現(xiàn)的錯(cuò)誤。例子數(shù)不勝數(shù):一個(gè)函數(shù)可能不會(huì)收到它預(yù)期的信息,必需的資源可能會(huì)丟失,或者網(wǎng)...
摘要:盡量使用內(nèi)置的異常處理語句來替換語句,比如語句,方法。以上是最簡單的重新拋出異常的做法,也是推薦的做法。除了包含所有的外還包含了,和三個(gè)異常。避免在語句塊中干一些沒意義的事情,捕獲異常也是需要成本的。 異常處理在任何一門編程語言里都是值得關(guān)注的一個(gè)話題,良好的異常處理可以讓你的程序更加健壯,清晰的錯(cuò)誤信息更能幫助你快速修復(fù)問題。在Python中,和不部分高級語言一樣,使用了try/ex...
閱讀 9056·2021-11-18 10:02
閱讀 2602·2019-08-30 15:43
閱讀 2663·2019-08-30 13:50
閱讀 1382·2019-08-30 11:20
閱讀 2712·2019-08-29 15:03
閱讀 3633·2019-08-29 12:36
閱讀 933·2019-08-23 17:04
閱讀 624·2019-08-23 14:18