異常即是乙個事件,該事件會在程式執行過程中發生,影響了程式的正常執行。 當python指令碼發生異常時我們需要捕獲處理它,否則程式會終止執行。
常見的異常如下:
1.
# print(a)
# nameerror
2.# print(10/0)
# zerodivisionerror (除0錯誤)
3.# 索引異常: indexerror
# str = 'hello'
# print(str[6])
4.# 字典key值錯誤: keyerror
# d = dict(a=1, b=2)
# 如果key值不存在, 返回none;
# print(d.get('c'))
# print(d.get('c', "key不存在"))
# # print(d['c'])
5.# 縮排異常: indentationerror
# age = 18
# if age > 18:
# print('adult')
# else:
# print("not adult")
# print('dhchfdhvf')
通常使用try...except... 語句進行異常處理,結構如下:
try的工作原理是,當開始乙個try語句後,python就在當前程式的上下文中作標記,這樣當異常出現時就可以回到這裡,try子句先執行,接下來會發生什麼依賴於執行時是否出現異常。
例如:
try:
# try裡面寫的是要執行的**;
print(a)
print(10/0)
# 此處不會列印westos, 因為上一行**執行報錯;
print('westos')
except nameerror:
# try裡面的**如果有異常/錯誤, 才會執行的**;
# except nameerror:, 只對nmaeerror錯誤進行處理;
print("錯誤")
else:
# 判斷是否有異常, 如果沒有, 執行此**;
print("執行成功")
finally:
# 有異常和沒有異常都會執行的**;
print("檢測finally的作用")
import sys
try:
10/0
f = open('passwd')
s = f.readline()
i = int(s.strip())
except oserror as err:
print("os error: ".format(err))
except valueerror:
print("could not convert data to an integer.")
except:
# sys.exc_info(): 獲取異常資訊
print(sys.exc_info())
print("unexpected error:", sys.exc_info()[0])
# 丟擲異常, 本來可以正確執行的**讓報錯;
raise
這裡用到乙個raise 它可以丟擲異常,使處理了的異常報出錯誤,下面會在觸發異常中詳細介紹。
異常處理的一些其它用途: 除了處理實際的錯誤條件之外,對於異常還有許多其它的用處。在標準 python 庫中 乙個普通的用法就是試著匯入乙個模組,然後檢查是否它能使用。匯入乙個並不存在的 模組將引發乙個 importerror 異常。 你可以使用這種方法來定義多級別的功能――依靠在執行時哪個模組是有效的,或支援多 種平台 (即平台特定**被分離到不同的模組中)。
使用raise語句自己觸發異常, raise語法格式如下:
raise [exception [, args [, traceback]]]
語句中 exception 是異常的型別(例如,nameerror)引數標準異常中任一種, args 是自已提供的異常引數。
例子如下:
# 錄入學生資訊的系統;
# 對錄入的資訊進行校驗: 1). len(姓名)>2 2). 0= 150:
raise nameerror("年齡必須在0所有的異常類總結:
下面有乙個使用者中斷執行的案例,實現對從開始輸入的數字到終止時之間輸入的數字求和:
# 使用者可以一直輸入數字, 當按ctrl+c之後計算所有數的和;
result = 0
while true:
try:
num = int(input('num:'))
# result = result + num
result += num
# 使用者中斷執行的異常; ===捕獲異常
except keyboardinterrupt:
print("執行結果:", result)
break
結果如下:
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...