python中的異常(try)

1.異常
程序在運行的時候,如果python解釋器遇到一個錯誤,會停止程序的執行,
並且提示一些錯誤的信息,這就是異常
我們在程序開發的時候,很難將所有的特殊情況都處理,
通過異常捕獲可以針對
突發事件做集中處理,從而保證程序的健壯性和穩定性

在程序開發中,如果對某些代碼的執行不能確定(程序語法完全正確)
可以增加try來捕獲異常

try這個關鍵字來捕獲異常
try:
嘗試執行的代碼
except:
出現錯誤的處理

try:

不能確定正確執行的代碼

num = int(input('請輸入一個數字:'))

except:
print('請輸入正確的整數')

#num = int(input('Num:'))
print('' 50)

2.
需求:
1.提示用戶輸入一個整數
2.使用8來除以用戶輸入的整數

try:
嘗試執行的代碼
except 錯誤類型1:
針對錯誤類型1,對應的代碼處理
except 錯誤類型2:
針對錯誤類型2,對應的代碼處理

try:
num = int(input('請輸入一個整數:'))
result = 8 /num
print(result)
#except ZeroDivisionError:
#print('0不能做除數')
except ValueError:
print('輸入的值不是合法的整數')
except Exception as r:
print('未知錯誤 %s' %(r))
#沒有預先判斷到的錯誤怎麼辦?
#ZeroDivisionError
finally:

無論是否有異常,都會執行的代碼

print('%%%%%%%%%%%%%%%')

#ValueError

3.異常的傳遞

def demo1():
return int(input('請輸入整數:'))

def demo2():
return demo1()

#函數的錯誤:一級一級的去找,最終會將異常傳遞到主函數裏去的
#try:
#print(demo2())
#except Exception as r:
#print('未知錯誤 %s' %r)
print(demo2())

04.主動拋出異常
需求:提示用戶輸入密碼 如果長度小於8 就拋出異常

def input_passwd():
#1.提示用戶輸入密碼
pwd = input('請輸入密碼:')
#2.判斷密碼的長度
if len(pwd) >=8:
return pwd
#3.如果<8就主動拋出異常
print('主動拋出異常')
#a.創建異常對象
ex = Exception('密碼長度不夠')
#b.主動拋出
raise ex
#注意:只拋出異常而不捕獲異常 代碼會出錯
try:
print(input_passwd())
except Exception as re:
print(re)

5.斷言

可以理解爲提前預言 讓人更好的知道錯誤的原因

def func(num,div):
assert (div !=0),'div不能爲0'
return num/div

print(func(10,0))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章