Python 異常處理

2022-08-26 02:45:09 字數 3738 閱讀 8589

一、捕獲異常

1、當程式出錯時,不會展示bug資訊給使用者,而是提供乙個友好的提示後,繼續執行程式

2、如下,實現除法,當分母為0時,捕獲並列印出異常資訊;exception可以捕獲任何異常

def

div(x, y):

try:

print(x/y)

except

exception as e:

print('

異常為', e)

>>> div(1,0)

異常為 division by zero

也可以指定異常為zerodivisionerror

def

div(x, y):

try:

print(x/y)

except

zerodivisionerror as e:

print('

異常為', e)

>>> div(1,0)

異常為 division by zero

3、同時捕獲多個異常

def

fdiv(x,y):

try:

return x/y

except

typeerror as e:

print('

typeerror:

', e)

except

zerodivisionerror as e:

print('

zerodivisionerror:

', e)

except

exception as e:

print('

其他異常:

', e)

>>> fdiv('abc', 0)

typeerror: unsupported operand type(s) for /: 'str' and 'int'

>>> fdiv(12,0)

zerodivisionerror: division by zero

也可以用以下方式:

def

fdiv1(x,y):

try:

return x/y

except

(typeerror, zerodivisionerror, exception) as e:

print(e)

>>> fdiv1('abc', 0)

unsupported operand type(s) for /: 'str' and 'int'

>>> fdiv1(12,0)

division by zero

二、常用異常

'

---------------ioerror:開啟檔案路徑出錯或不存在------------------

'try

: f = open('

error.txt

','r')

except

ioerror as e:

print('

開啟檔案出錯, 錯誤資訊:

', e)

'--------------importerror:匯入模組路徑出錯或不存在--------------

'try

:

import

error

except

importerror as e:

print('

匯入模組出錯, 錯誤資訊:

', e)

'--------------indexerror:索引出界----------------------------

'list1 = [1,2,3,4,5,6]

try:

print(list1[6])

except

indexerror as e:

print('

查詢列表出錯, 錯誤資訊:

', e)

'----------------keyerror:查詢字典中不存在的關鍵字---------------

'dict1 =

try:

print(dict1[3])

except

keyerror as e:

print('

查詢字典出錯, 錯誤資訊:

', e)

'----------------typeerror:引數型別不匹配----------------------

'def

fint(a):

print(a/2)

try:

str1 = '

abc'

fint(str1)

except

typeerror as e:

print('

引數型別出錯, 錯誤資訊:

', e)

'------------valueerror:引數型別匹配,但是傳入的值不對------------

'str1 = '

abc'

try:

print

(int(str1))

except

valueerror as e:

print('

引數值出錯, 錯誤資訊:

', e)

'------------------nameerror:使用的變數沒有賦值------------------

'try

:

print

(a)except

nameerror as e:

print('

引數出錯, 錯誤資訊:

', e)

三、自定義異常

class

myexception(exception):

def__init__

(self, msg):

self.message =msg

def__str__

(self):

return

self.message

try:

raise myexception('

自定義異常')

except

myexception as e:

print(e)

四、主動丟擲異常

try

:

raise ioerror('

讀寫檔案出錯了

') #

主動丟擲ioerror異常

except

ioerror as e:

print(e)

五、try - except - else - finally

try

: f = open('

test.txt

', 'r'

)except ioerror as e: #開啟檔案失敗,則

丟擲異常

print

(e)else: #

開啟檔案成功,則執行else塊

print('

執行else')

f.close()

finally: #

無**件是否正常開啟,都會執行finally塊

print('

執行finally

')

python異常處理 Python 異常處理

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

python異常舉例 Python異常處理

1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...

python異常處理

當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...