python--异常处理
異常處理
報錯時候前面是錯誤類型,后面是異常說明上面是異常的追蹤信息
真正報錯的是最后一行
如果錯誤跳到內置代碼,python的代碼不會出錯,那么就往上找自己代碼的錯誤
?
異常處理的應用
1.可以用if規(guī)避,但是成本太高。
2.不能用if處理了,StopIteration
異常處理的特點:一旦發(fā)生異常,程序就不再執(zhí)行了
try:num=input('num:')int(num)print(num) except ValueError:print('請輸入一個數(shù)字')放在try中的代碼如果遇到except中的錯誤類型,就會執(zhí)行except中的代碼
且一旦發(fā)生異常,Try中的代碼會停止在異常處
但不影響try語句之外的代碼執(zhí)行
一種錯誤類型只能處理對應的一種錯誤,其他錯誤還會照常報錯
可以多個except套用,如果中間的錯誤了,下面的錯誤也不會執(zhí)行
程序跑的很好的時候ctrl+c讓他停止,會發(fā)生一個異常keyboardInterrupt
try里面最好不要調用函數(shù)
as語句,as后面的變量就是錯誤的具體
as 在我們不能完全明確的知道這個錯誤到底是發(fā)生了什么的是時候就用as? 變量
將變量中存儲的錯誤信息打印出來
except Exception萬能異常:
對于你已經可以預見的但是不能完全規(guī)避的必須要處理的異常,你應該去指定他的處理方式
對于其他你不能預料的,再使用萬能異常處理
萬能異常和其他異常處理一起用時候,其他異常處理要放在上面
異常處理中的else語句
try語句正確執(zhí)行沒有發(fā)生異常才去執(zhí)行else
一般else是來看是否執(zhí)行成功給一個回執(zhí)
完整異常處理的一套例子? 代碼執(zhí)行成功時執(zhí)行else? 出現(xiàn)ValueError異常執(zhí)行第二個
別的異常執(zhí)行萬能異常處理,最后必須要執(zhí)行finally(遇見return也執(zhí)行)
raise 觸發(fā)異常用的,后邊加異常,主動報異常
assert? 斷言? 后邊是條件? 不符合條件就報錯
轉載于:https://www.cnblogs.com/gaoshengyue/p/7518786.html
總結
以上是生活随笔為你收集整理的python--异常处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js内存理解
- 下一篇: InnoDB Master Thread