python中的異常(try)

1.異常
程序在運行的時候,若是python解釋器遇到一個錯誤,會中止程序的執行,
而且提示一些錯誤的信息,這就是異常
咱們在程序開發的時候,很難將全部的特殊狀況都處理,
經過異常捕獲能夠針對
突發事件作集中處理,從而保證程序的健壯性和穩定性python

在程序開發中,若是對某些代碼的執行不能肯定(程序語法徹底正確)
能夠增長try來捕獲異常ide

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

try:code

不能肯定正確執行的代碼

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

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

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

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

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

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:it

不管是否有異常,都會執行的代碼

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

#ValueError io

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

相關文章
相關標籤/搜索