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))
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
