程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【python基礎】異常處理機制

編輯:Python

異常處理機制

  • 一、異常處理
  • 二、異常處理機制
  • 三、觸發異常

一、異常處理

1、錯誤類型
ERROR異常:系統種的錯誤,發生的原因可能是系統崩潰,內存空間不足,建議讓程序終止
Exception異常:錶示程序可以處理的異常,可以捕獲且可能恢複。這類問題可以處理。

2、錯誤提醒
可能的錯誤:

AttributeError .lOError . ImportError . IndexError、SyntaxError、TypeError、ValueError、KeyError、NameError。

常見的錯誤如下:

. IndentationError:縮進錯誤
. KeyboardInterrupt: Ctrl+C被按下
. UnboundLocalError :有同名的全局變量

3、舉例

1、print(a)
NameError 名字錯誤,沒有這個參數
2、print(10/0)
ZeroDivisionError: division by zero 除數不能為0
3、with open('hello.txt') as f:
pass
FileNotFoundError 文件錯誤,沒有這個文件

二、異常處理機制

try:嘗試去運行的程序
except:try出問題了運行的代碼(可以出現多個)
else:try沒有問題運行的程序
finally:無論什麼情況都會運行的代碼

舉例
execpt是進行多選一的

try: 嘗試運行
a=1
print(b)
except NameError as name_error: 如果名字錯誤則
print('name_error')
except KeyError as key_error: 如果關鍵字錯誤則
print('key_error')
except Exception as all_error: 如果有錯誤則
print('all_error')
finally: 最後統一執行
print('結束')

三、觸發異常

1、raise拋出異常

age = int(input('age:'))
if 0<age<150:
print(age)
else:
# 拋出異常
raise ValueError("年齡必須在0~150之間")
#結果
輸入100
ValueError: 年齡必須在0~150之間

2、自定義異常
通過自定義異常

# 自定義的異常
class AgeError(ValueError): 自定義錯誤模塊:AgeError,其屬於ValueError類
pass
age = int(input('age:'))
if 0<age<150:
print(age)
else:
# 拋出異常
raise AgeError("年齡必須在0~150之間")
#結果
輸入1000
AgeError: 年齡必須在0~150之間
``

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved