第二十一節 異常處理

2022-08-31 22:12:26 字數 4507 閱讀 3357

異常處理:

異常分為2種,

一種是語法錯誤:必須在除錯的時候處理掉

一種是邏輯錯誤:為了保證程式的健壯性與容錯性,即在遇到錯誤時程式不會崩潰,我們需要對此異常進行處理

exception異常是其他所有異常類的基類,可代表所有異常

s1 = '

hello

' #異常多分支

try:

int(s1)

except

indexerror as e: #捕捉指定異常

print

(e)except

keyerror as e:

print

(e)except

valueerror as e:

print

(e)except

exception as e: #捕捉其他異常

print(e)

自定義異常:

class

myexception(baseexception):

def__init__

(self,msg):

self.msg=msg

def__str__

(self):

return

self.msg

try:

raise mynexception('

型別錯誤')

except

myexception as e:

print(e)

斷言:

assert 1 == 1
不可捕獲的異常:

nameerror:     # 嘗試訪問乙個未申明的變數

zerodivisionerror:   # 除數為零

syntaxerrot:   # 直譯器語法錯誤

indexerror:    # 請求的索引元素超出序列範圍

keyerror:   # 請求乙個不存在的字典關鍵字

ioerror:   # 輸入/輸出錯誤

attributeerror:   # 嘗試訪問未知的物件屬性

importerror    # 沒有模組

indentationerror   # 語法縮排錯誤

keyboardinterrupt  # ctrl+c

syntaxerror    # **語法錯誤

valueerror    # 值錯誤

typeerror    # 傳入物件型別與要求不符合

內建異常:

baseexception    # 所有異常的基類

systemexit   # python直譯器請求退出

keyboardinterrupt   # 使用者中斷執行

exception   # 常規錯誤的基類

stopiteration   # 迭代器沒有更多的值

generatorexit    # 生成器發生異常來通知退出

standarderror    # 所有的內建標準異常的基類

arithmeticerror   # 所有數值計算錯誤的基類

floatingpointerror    # 浮點計算錯誤

overflowerror    # 數值運算超出最大限制

assertionerror   # 斷言語句失敗

attributeerror    # 物件沒有這個屬性

eoferror    # 沒有內建輸入,到達eof標記

environmenterror   # 作業系統錯誤的基類

ioerror    # 輸入/輸出操作失敗

oserror   # 作業系統錯誤

windowserror   # windows系統呼叫失敗

importerror    # 匯入模組/物件失敗

keyboardinterrupt   # 使用者中斷執行(通常是ctrl+c)

lookuperror   # 無效資料查詢的基類

indexerror    # 序列中沒有此索引(index)

keyerror   # 對映中沒有這個鍵

memoryerror    # 記憶體溢位錯誤(對於python直譯器不是致命的)

nameerror    # 未宣告/初始化物件(沒有屬性)

unboundlocalerror   # 訪問未初始化的本地變數

referenceerror   # 若引用試圖訪問已經垃圾**了的物件

runtimeerror    # 一般的執行時錯誤

notimplementederror    # 尚未實現的方法

syntaxerror    # python語法錯誤

indentationerror # 縮排錯誤

taberror    # tab和空格混用

systemerror    # 一般的直譯器系統錯誤

typeerror    # 對型別無效的操作

valueerror   # 傳入無效的引數

unicodeerror   # unicode相關的錯誤

unicodedecodeerror   # unicode解碼時的錯誤

unicodeencodeerror   # unicode編碼時的錯誤

unicodetranslateerror   # unicode轉換時錯誤

warning   # 警告的基類

deprecationwarning   # 關於被棄用的特徵的警告

futurewarning    # 關於構造將來語義會有改變的警告

overflowwarning    # 舊的關於自動提公升為長整形的警告

pendingdeprecationwarning # 關於特性將會被廢棄的警告

runtimewarning   # 可疑的運  行時行為的警告

syntaxwarning   # 可疑的語法的警告

userwarning    # 使用者**生成的警告

主動觸發異常:

raise exclass # 觸發異常,從exclass生成乙個例項(不含任何異常引數)

raise exclass() # 觸發異常,但現在不是類;通過函式呼叫操作符(function calloperator:"()")作用於類名生成乙個新的exclass例項,同樣也沒有異常引數

raise exclass, args # 觸發異常,但同時提供的異常引數args,可以是乙個引數也可以是元組

raise exclass(args) # 觸發異常,同上

raise exclass, args, tb # 觸發異常,但提供乙個跟蹤記錄(traceback)物件tb供使用

raise exclass,instance # 通過例項觸發異常(通常是exclass的例項)

raise instance # 通過例項觸發異常;異常型別是例項的型別:等價於raise instance.__class__, instance

raise string # 觸發字串異常

raise string, srgs # 觸發字串異常,但觸發伴隨著args

raise string,args,tb # 觸發字串異常,但提供乙個跟蹤記錄(traceback)物件tb供使用

raise # 重新觸發前乙個異常,如果之前沒有異常,觸發typeerror

第二十一題

題目 猴子吃桃問題 猴子第一天摘下若干個桃子,當即吃了一半,還不癮,又多吃了乙個第二天早上又將剩下的桃子吃掉一半,又多吃了乙個。以後每天早上都吃了前一天剩下的一半零乙個。到第10天早上想再吃時,見只剩下乙個桃子了。求第一天共摘了多少。my code 正向思考 index true remain0 0...

第二十一天

好久沒有寫點東西了。或許是為了忙個經濟師中級的考試,列印了很多的資料,每章一節一節地在消化,咀嚼著生硬的專業術語,那滋味,只有體會過了才知道。乙個晚上看下來,做夢也是這些內容,有點累,但是,為了目標,只有克服,努力前進。單位的專案要啟動了,事情特別多,給我們準備的時間就乙個禮拜,一開始拿到這個內容需...

第二十一節(Jquery文件屬性和外掛程式)

1 新增css樣式 box 2 獲取盒子高度 box 3 text align center margin 50px auto text id email box 11111 22222 33333 44444 55555 66666 4 獲取滾動條的高度 可實現時間滾動軸 1.2.測試時 好多同學...