Python 異常處理

2021-09-24 05:35:13 字數 2818 閱讀 9842

異常即是乙個事件,該事件會在程式執行過程中發生,影響了程式的正常執行。 當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...