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