一、捕獲異常
1、當程式出錯時,不會展示bug資訊給使用者,而是提供乙個友好的提示後,繼續執行程式
2、如下,實現除法,當分母為0時,捕獲並列印出異常資訊;exception可以捕獲任何異常
def>>> div(1,0)div(x, y):
try:
print(x/y)
except
exception as e:
print('
異常為', e)
異常為 division by zero
也可以指定異常為zerodivisionerror
def>>> div(1,0)div(x, y):
try:
print(x/y)
except
zerodivisionerror as e:
print('
異常為', e)
異常為 division by zero
3、同時捕獲多個異常
deffdiv(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
也可以用以下方式:
deffdiv1(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:
(int(str1))
except
valueerror as e:
print('
引數值出錯, 錯誤資訊:
', e)
'------------------nameerror:使用的變數沒有賦值------------------
'try
:
(a)except
nameerror as e:
print('
引數出錯, 錯誤資訊:
', e)
三、自定義異常
classmyexception(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: #開啟檔案失敗,則
丟擲異常
(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...