python3中異常處理 Python3異常處理

2021-10-11 19:34:53 字數 2801 閱讀 5731

python的異常處理機制

使用 try...except 捕獲異常

try:

# 業務實現**

except (error1, error2, ...) as e:

# 出現異常後的處理**

異常類的繼承關係

baseexception

+-- systemexit

+-- keyboardinterrupt

+-- generatorexit

+-- exception

+-- stopiteration

+-- stopasynciteration

+-- arithmeticerror

| +-- floatingpointerror

| +-- overflowerror

| +-- zerodivisionerror

+-- assertionerror

+-- attributeerror

+-- buffererror

+-- eoferror

+-- importerror

| +-- modulenotfounderror

+-- lookuperror

| +-- indexerror

| +-- keyerror

+-- memoryerror

+-- nameerror

| +-- unboundlocalerror

+-- oserror

| +-- blockingioerror

| +-- childprocesserror

| +-- connectionerror

| | +-- brokenpipeerror

| | +-- connectionabortederror

| | +-- connectionrefusederror

| | +-- connectionreseterror

| +-- fileexistserror

| +-- filenotfounderror

| +-- interruptederror

| +-- isadirectoryerror

| +-- notadirectoryerror

| +-- permissionerror

| +-- processlookuperror

| +-- timeouterror

+-- referenceerror

+-- runtimeerror

| +-- notimplementederror

| +-- recursionerror

+-- syntaxerror

| +-- indentationerror

| +-- taberror

+-- systemerror

+-- typeerror

+-- valueerror

| +-- unicodeerror

| +-- unicodedecodeerror

| +-- unicodeencodeerror

| +-- unicodetranslateerror

+-- warning

+-- deprecationwarning

+-- pendingdeprecationwarning

+-- runtimewarning

+-- syntaxwarning

+-- userwarning

+-- futurewarning

+-- importwarning

+-- unicodewarning

+-- byteswarning

+-- resourcewarning

訪問異常資訊

try:

statement

except exception as e:

# 訪問異常的錯誤編號和詳細資訊

print(e.args)

# 訪問異常的錯誤編號

print(e.errno)

# 訪問異常的詳細資訊

print(e.strerror)

else塊

s = input('請輸入除數:')

try:

result = 20 / int(s)

print("20除以%s的結果是:%g" % (s, result))

except valueerror:

print("值錯誤,必須輸入數字")

except arithmeticerror:

print("算術錯誤,不能輸入0")

else:

print("沒有出現異常")

finally塊

try:

statement

except exception as e:

# 異常處理塊

else:

# 沒有出現異常時

finally:

# 不管有沒有出現異常都會執行

自定義異常處理

使用 raise 引發異常

當程式出現錯誤時,系統會自動引發異常。除此之外,python也允許程式使用 raise 語句來自行引發異常

自定義異常類

自定義異常類

自定義的異常類都應該繼承 exception 基類或 exception 的子類

class myexception(exception):

pass

使用自定義異常類

raise myexception("自定義異常資訊")

Python3 異常處理

python3.5 異常處理 try用法 try except語句主要是用於處理程式正常執行過程中出現的一些異常情況 try finally語句則主要用於在無論是否發生異常情況,都需要執行一些清理工作的場合 完整語句中,else語句的存在必須以except x或者except語句為前提,也就是說el...

python3 異常處理

python中的異常捕獲 異常處理語句關鍵字有try except else finally,主要組合如下 1.不捕獲異常,不管是否異常仍要執行操作 finally 先執行finally中的語句,再丟擲異常。不捕獲異常,丟擲異常後,仍執行finally中的語句 try print 1 0 final...

Python3異常處理

在程式設計過程中為了增加友好性,在程式出現bug時一般不會直接將錯誤資訊展示給使用者,而是提供乙個友好的輸出提示。1.異常基礎 常用結構 try pass except exception,ex pass 其他結構 try 主 塊 pass except keyerror,e 異常時,執行該塊 pa...