Python 異常處理

2021-08-30 15:50:07 字數 2529 閱讀 1181

什麼是錯誤

錯誤是指由於邏輯或語法等導致程式無法正常執行的問題

特點 無法預知

什麼是異常

異常是程式出錯時標識的一種狀態.當導常發生時,程式不會再

向下執行,而轉去呼叫此函式的地方待處理此錯誤並恢復為正常狀態

作用: 用作訊號通知,通知上層呼叫者有錯誤產生需要處理

程式有兩種狀態:

正常狀態/異常狀態

try-except語句

try-finally語句

try-except語句的語法

try:

可能觸發異常的語句

except 錯誤型別1 [as 變數1]:

異常處理語句1

except 錯誤型別2 [as 變數2]:

異常處理語句2

except (錯誤型別3, 錯誤型別4) [as 變數3]:

異常處理語句3

...except:

異常處理語句other

else:

末發生異常的語句

finally:

最終語句

作用: 償試捕獲錯誤,得到異常通知,將程式由異常狀態轉換為正常狀態並

繼續執行

說明: as 子句是用於繫結錯誤物件的變數,可以省略

except 子句可以有乙個或多個,但至少要有乙個

else 子句最多只能有乙個.也可以省略

finally子句最多只能有乙個.也可以省略

(錯誤型別,可能後期補充)

try-finally 語句

語法 try:

可能觸發異常的語句

finally:

最終語句

說明: finally子句不可以省略

一定不存在except子句

作用: 通常用try-finally語句來做觸發異常時必須要處理的事情

無論異常是否發生,finally子句都會被執行

注: try-finally語句不會改變程式的(正常/異常)狀態

在這裡插入**片
作用:

觸發乙個錯誤,讓程式進入異常狀態

傳送錯誤通知給呼叫者

語法: raise 異常型別

或 raise 異常物件

或 raise # 重新觸發上一次異常

示例: raise valueerror #

raise valueerror("???????")

示例見:

raise.py

raise2.py

語法:

assert 真值表示式, 錯誤資料(通常是字串)

作用: 當真值表示式為false時,用錯誤資料建立乙個

assertionerror型別的錯誤,並進入異常狀態

通常用來故意製造乙個錯誤

等同於:

if bool(真值表示式) == false:

raise assertionerror(錯誤資料)

異常中的語句小結:

try-except 語句

用於捕獲(接收)錯誤通知,把異常狀態轉為正常狀態

try-finally語句

用於執行在任何狀態(正常/異常)都必須要執行的語句

raise 語句

觸發錯誤(傳送錯誤通知),讓程式進入異常狀態

assert 語句

根據條件觸發assertionerror型別的錯誤通知

什麼是迭代器

迭代器是訪問可迭代物件的工具

迭代器是指iter(obj) 函式返回的物件(例項)

迭代器可以用next(it) 函式獲取可迭代物件的資料

迭代器函式iter和next

iter(iterable) 從可迭代物件中獲取乙個迭代器,iterable

必須是能提供乙個迭代器的可迭代物件

next(iterator) 從迭代器iterator中獲取下乙個記錄,如

果無法獲取下一條記錄,則觸發stopiteration異常

說明:迭代器只能往前取值,不會後退

用iter函式可以返回乙個可迭代物件的迭代器

示例:

l = [2, 3, 5, 7]

it = iter(l) # 從l物件中獲取乙個迭代器

print(next(it)) # 2

print(next(it)) # 3

print(next(it)) # 5

print(next(it)) # 7

print(next(it)) # stopiteration 異常

# 用迭代器訪問 range() 函式返回的整數序列生成器

it = iter(range(1, 10, 3))

next(it) # 1

next(it) # 4

next(it) # 7

next(it) # stopiteration

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...