異常處理的python

2022-08-27 02:30:16 字數 3634 閱讀 4016

try:

# 未宣告的變數

print(x)

except exception as e:

print(e)

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

print(v)

nameerror: name 'v' is not defined

zerodivisionerror:除數為0

print(1/0)

zerodivisionerror: int division or modulo by zero

syntaxerror:語法錯誤

print(,)

file "test.py", line 201

print(,)

^syntaxerror: invalid syntax

indexerror:索引超出範圍

list = [2]

print(list[3])

traceback (most recent call last):

file "", line 1, in list[3]

indexerror: list index out of range

keyerror:字典關鍵字不存在

dic = 

print(dic['3'])

traceback (most recent call last):

file "", line 1, in dic['3']

keyerror: '3'

ioerror:輸入輸出錯誤

f = open('abc')

ioerror: [errno 2] no such file or directory: 'abc'

attributeerror:訪問未知物件屬性

class worker:

def work():

print("i am working")

w = worker()

w.atraceback (most recent call last):

file "", line 1, in w.a

attributeerror: 'worker' object has no attribute 'a'

valueerror:數值錯誤

int('d')

traceback (most recent call last):

file "", line 1, in int('d')

valueerror: invalid literal for int() with base 10: 'd'

typeerror:型別錯誤

istr = '22'

ival = 22

obj = istr + ival;

traceback (most recent call last):

file "", line 1, in obj = istr + ival;

typeerror: can't convert 'int' object to str implicitly

(1)執行try子句(在關鍵字try和關鍵字except之間的語句)

(2)如果沒有異常發生,忽略except子句,try子句執行後結束。

(3)如果在執行try子句的過程中發生了異常,那麼try子句剩下的部分將被忽略。如果異常的型別和except之後的名稱相符,那麼對應的except子句將被執行。最後執行 try 語句之後的**。

try:

print(x)

# 產生的異常型別和捕獲的異常型別相符

except nameerror as e:

print(1)

print(e)

(4)如果異常沒有與任何except匹配,那麼這個異常將會傳遞給上層的try中。

try:

try:

print(x)

# 產生的異常和捕獲異常的型別不符,則異常傳遞給上層try

except indexerror as e:

print(1)

print(e)

except exception as ee:

print(2)

print(ee)

(5)乙個 try 語句可能包含多個except子句,分別來處理不同的特定的異常。最多只有乙個分支會被執行。

try:

print(x)

except indexerror as e1:

print(1)

print(e1)

except nameerror as e2:

print(2)

print(e2)

(6)乙個except子句可以同時處理多個異常,這些異常將被放在乙個括號裡成為乙個元組。

try:

print(x)

except (indexerror, nameerror) as e:

print(e)

(7)最後乙個except子句可以忽略異常的名稱,它將被當作萬用字元使用。你可以使用這種方法列印乙個錯誤資訊。

try:

print(x)

except:

print('您遇到了錯誤')

(8)try except語句還有乙個可選的else子句,如果使用這個子句,那麼必須放在所有的except子句之後。這個子句將在try子句沒有發生任何異常的時候執行。

try:

print(x)

except:

print('您遇到了錯誤')

else:

print('前面沒有發生任何錯誤')

(9)異常處理並不僅僅處理那些直接發生在try子句中的異常,而且還能處理子句中呼叫的函式(甚至間接呼叫的函式)裡丟擲的異常。

def this_fails():

x = 1 / 0

try:

this_fails()

except zerodivisionerror as err:

print('0不能作為除數', err)

(10)try……finally 語句,無論是否發生異常,都會執行finally塊的**

try:

print(11)

except:

pass

finally:

print('hh')

之所以我們能捕獲異常,那是因為**執行的時候,系統給我們丟擲了異常。其實我們也可以手動自行丟擲異常。

def xx():

raise exception('錯誤', 1111)

try:

xx()

except exception as e:

print(e)

python異常處理 Python 異常處理

使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...

Python的異常處理

python中的異常型別分如下幾種 1 nameerror 嘗試訪問乙個未申明的變數 v nameerror name v is not defined 2 zerodivisionerror 除數為0 v 1 0 zerodivisionerror int division or modulo b...

Python的異常處理

1.raise語句 為了引發異常,可以使用乙個類或者例項呼叫raise語句。raise exceptiontraceback most recent call last file line 1,in exception raise exception hyperdive overload trace...