異常:
程式在執行的時候,如果python直譯器遇到乙個錯誤,會停止程式的執行,
並且提示一些錯誤的資訊,這就是異常
我們在程式開發的時候,很難將所有的特殊情況都處理,
通過異常捕獲可以針對
突發事件做集中處理,從而保證程式的健壯性和穩定性
在程式開發中,如果對某些**的執行不能確定(程式語法完全正確)
可以增加try來捕獲異常
try這個關鍵字來捕獲異常
try:嘗試執行的**
except:出現錯誤的處理
1.簡單用法示例
2.提示使用者輸入乙個整數,並使用8來除以使用者輸入的整數try:
# 不能確定正確執行的**
num = int(input('請輸入乙個數字:'))
except:
print('請輸入正確的整數')
print('*' * 50)
一級一級的去找,最終會將異常傳遞到主函式裡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
需求:提示使用者輸入密碼 如果長度小於8 就丟擲異常def demo1():
return int(input('請輸入整數:'))
def demo2():
return demo1()
# 函式的錯誤:一級一級的去找,最終會將異常傳遞到主函式裡
# try:
# print(demo2())
# except exception as r:
# print('未知錯誤 %s' %r)
print(demo2())
可以理解為提前預言 讓人更好的知道錯誤的原因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)
def func(num,div):
assert (div !=0),'div不能為0'
return num/div
print(func(10,0))
Swift異常處理的try?與try!
首先要明白丟擲異常後異常的運動 異常被丟擲後,中斷整個處理,異常不斷向外層 範圍 傳遞,直到遇到catch 塊群,會與catch 塊的條件進行匹配,匹配符合則進入此 塊處理。如果遇到沒有條件的catch 那麼直接在這個 裡處理。如果丟擲的異常一直到最外層仍沒有被catch 處理,那麼程式會卡住 後面...
Python中try語句的用法
try f open 該文件不存在 print f.read f.close except oserror print 檔案出錯了t t 輸出 檔案出錯了t t 當然,我們也可以在except exception 加上 as reason將程式檢測到的出錯的資訊輸出,舉例說明 try f open ...
python 常見異常及try語句
1 assertionerror 斷言語句 assert 失敗 2 attributerrrror 嘗試訪問位置的物件屬性 3 indexerror 索引超出系列的範圍 4 keyerror 字典中查詢乙個不存在的關鍵字 注意 使用.get方法即使關鍵字不存在也不會報錯即程式不會垮掉 5 namee...