python的異常處理

來源:互聯網
上載者:User

標籤:序列   定義   記憶體回收   匯入模組   sage   keyboard   oca   匯入   name   

try...except

有時候我們寫程式的時候,會出現一些錯誤或異常,導致程式終止。例如,做除法時,除法為0,會引發一個
ZeroDivisionError

a=10
b=0
try:
c=a/b
print c

except ZeroDivisionError ,e:
print e.message

print "done"

我們把可能發生錯誤的語句放在try模組裡,用except來處理異常。except可以處理一個專門的異常,也可以處理一組圓括弧中的異常,如果except後
沒有指定異常,則預設處理所有的異常。每一個try,都必須至少有一個except

處理一組異常可以這樣寫(其中e代表異常的執行個體):

try:
pass

except (IOError, ZeroDivisionError) ,e:
print e

try ......except....else 語句,當沒有異常發生時,else中的語句將會被執行。

例子:

a = 10

b = 0

try:
c = b/a/b
print c

except (IOError , ZeroDivisionError),x:
print x

else:

print ("no error")

print "done"


二、raise 引發一個異常
例子:如果輸入的資料不是整數,則引發一個ValueError

inputValue = input("please input a int data:")

if type(inputValue)!=type(1)
raise ValueError

else:
print (inputValue)


三、try。。。finally

無論異常是否發生,在程式結束前,finally中的語句都會被執行

a =10
b =0

try:
print a/b

except:
print "error"

finally:
print "always excute"


四、自訂一個異常類


這個自訂

五、python所有的標準異常類:

異常名稱

描述

BaseException (所有異常的基類(父類))

SystemExit (解譯器請求退出)

KeyboardInterrupt (使用者中斷執行(通常是輸入^c))

Exception (常規錯誤的基類)

Stoplteration (迭代器沒有更多的值)

GeneratorExit (產生器(generator)發生異常來通知退出)

SystemExit (python解譯器請求退出)

StandardError (所有的內建標準異常的基類)

ArithemticError (所有數值計算錯誤的基類)

FloatingPointError (浮點計算錯誤)

OverflowError (數值運算超出最大限制)

ZeroDivisionError 除(或模數)零(所有資料類型)

AssertionError (Assert 陳述式失敗)

AttributeError(對象沒有這個屬性)

EoFError (沒有內建輸入,到達EoF標記)

EnvironmentError (作業系統錯誤的基類)

IOError (輸入/輸出操作失敗)

OSError (作業系統錯誤)

windowsError (系統調用失敗)

ImportError (匯入模組/對象失敗)

LookupError (無效資料查詢的基類)

IndexError (序列中沒有此索引(index))

KeyError (映射中沒有這個建)

MemoryError (記憶體溢出錯誤(對於python解譯器不是致命的))

NameError (未聲明/初始化對象(沒有屬性))

UnboundLocalError (訪問未初始化的本地變數)

ReferenceError (弱引用(weak reference)試圖訪問已經記憶體回收了的對象)

RuntimeError (一般的執行階段錯誤)

SyntaxError (python 語法錯誤)

TypeError (對類型無效的操作)

ValueError (傳入無效的參數)

SyntaxWarning (可疑的文法的警告)

python的異常處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.