異常處理

異常處理語法:

try:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 錯誤!=異常

? ? ? ? <異常監(jiān)控>

excpet Exception[,reason]:? ? ? ? ? ? ? ? ? ? ? ? ? ? 異常是指出現(xiàn)錯誤是采用正常控制

? ? ? ? <異常處理代碼>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 以外的動作異常處理的一般

finally:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 流程是:

? ? ? ? <無論異常是否發(fā)生都執(zhí)行>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 檢測到錯誤,

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?引發(fā)異常;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 對異常進(jìn)行捕獲處理


常遇到錯誤:

1.NameError:是指變量未定義類型? ? ? ? ????????????????????????????例:i=j

2.syntax Error:語法錯誤會提示在那一行出現(xiàn)? ? ? ? ? ? ? ? ? 例:print())

3. indexError:超出索引范圍? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例:a='123'? ? ????????????????????????????????????????????????????????????????????????????????????????????????????print(a[3])

4.KeyError:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?例:d={'a':1,'b';2}

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?prin(d['c'])

5.ValueError:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?例:year=int(input('input year:'))

6.AttributeError:屬性錯誤? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?例:a=123

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?a.append()

7.ZeroDivisionError:除0異常


如何進(jìn)行捕獲異常:

例:

? ? ? ? ? ? try:

? ? ? ? ? ? ? ? ? ?year=int(input('input year:'))

? ? ? ? ? ? ? ?except?ValueError:

? ? ? ? ? ? ? ? ? ? ? ?print('年份要輸入數(shù)字')


? 多種異常捕獲:

例如:

? ? ? ? ? ? except (KeyError,ValueError,AttributeError)


對異常信息進(jìn)行詳細(xì)輸出:

? ? ? ? ? ?已知異常信息:

? ? ? ? ? ? ? ? ? ? ? ?try:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?print(1/0)

? ? ? ? ? ? ? ? ? ? ? ? except ZeroDivisionError? as e:? ? ? ?as將異常信息定義為變量

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?print(’0不能做除數(shù) %s‘ %e)

? ? ? ? ? ? ? 未知異常信息:

? ? ? ? ? ? ? ? ? ? ? ? ?try:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?print(1/0)

? ? ? ? ? ? ? ? ? ? ? ? ?except Exception as e:? ? ? ? ? ? ? ? 用于捕獲未知的異常信息

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?print(’0不能做除數(shù) %s‘ %e)


如何自己定義錯誤信息:

????????????????????try:

? ? ? ? ? ? ? ? ? ? ? ? ?????reise Name Error(’helloError‘)

? ? ? ? ? ? ? ? ? ? ?except?NameError:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? print ('my custonm error')?


finally(一般用于文件控制):

? ? ? ? ? ? ? ? ? ? ? ? try:? ??????????????????????????

? ? ? ? ? ? ? ? ? ? ? ? ?????????a=open('name.text')

? ? ? ? ? ? ? ? ? ? ?????except?Exception as e:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? print (e)?

? ? ? ? ? ? ? ? ? ? ? ? ? ?finally:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a.close()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、錯誤和異常 1.概念 兩種容易辨認(rèn)的錯誤? 語法錯誤:一些關(guān)于語法的錯誤【縮進(jìn)】? 異常:代碼完全正確,但是,...
    鄭元吉閱讀 381評論 0 0
  • 一、錯誤和異常 1.概念 兩種容易辨認(rèn)的錯誤? 語法錯誤:一些關(guān)于語法的錯誤【縮進(jìn)】? 異常:代碼完全正確,但是,...
    hollow_02f9閱讀 1,285評論 0 0
  • 1異常 1.1異常簡介 異常就是程序運行錯誤或者邏輯混亂。不能讓用戶看到直接代碼的報錯,需要給客戶友好的提示。 異...
    步_塵閱讀 604評論 0 0
  • CoffeeScript是JavaScript/Ruby的組合,可以將類似Python/Ruby的語法引入Java...
    小魚兒他老漢閱讀 765評論 0 0
  • 行 2016-1-22 23:09 ——父親督促我,督促不了夢想,我卻難為不了時間。 ...
    馬卓先生閱讀 474評論 0 9

友情鏈接更多精彩內(nèi)容