python入门程序异常_Python入门基础(10)_异常_1
最近有點忙,到現在快一個月沒寫了,罪過罪過,繼續學習
異常:python程序在運行時,如果python解釋器遇到一個錯誤,那么程序就會停止執行,并且會提示一些錯誤信息,這就是異常.
拋出異常:程序停止執行并提示錯誤信息的動作就是拋出異常.
比如下面這個例子:
num=int(input("請輸入一個數字:"))print("報錯了吧!弟弟")
如果我輸入的是一個正確的數字,那么會得到下面的結果:
請輸入一個數字:1報錯了吧!弟弟
但是如果我輸入非數字,將會得到下面的結果:
請輸入一個數字:A
Traceback (most recent call last):
File"C:/Users/users/PycharmProjects/study/zixue_good/socket_py/raise_study.py", line 1, in num=int(input("請輸入一個數字:"))
ValueError: invalid literalfor int() with base 10: 'A'
你會發現程序不止發生錯誤,就連我的"報錯了吧!弟弟"都沒有輸出來.在程序的開發過程中,很多代碼我們是不能確定是否正確;也就是說,在某些代碼里面可能會存在異常(如果你是大佬,毫無錯誤,當我沒說過),這時候,我們就需要捕獲異常.
1.捕獲異常
捕獲異常的語法:
try:
嘗試執行的代碼(可能有錯誤的代碼塊)
except:
出現錯誤的處理(try里面的代碼出現錯誤之后給點提示)
繼續看上面的那個例子,現在代碼改寫成這樣了:
try:
num=int(input("請輸入一個數字:"))except:print("輸入數字啊!豬")print("報錯了吧!弟弟")
輸入一個正確的數字,except里面的代碼并不會執行,因為我的try里面并沒有錯誤:
請輸入一個數字:1報錯了吧!弟弟
如果我輸入一個非數字的字符,try里面出現錯誤,except就會執行,后面的print也會繼續執行:
請輸入一個數字:啊
輸入數字啊!豬
報錯了吧!弟弟
2.錯誤類型捕獲
程序在執行的過程中,會有各種各樣的類型錯誤,比如(
BaseException
所有異常的基類
SystemExit
解釋器請求退出
KeyboardInterrupt
用戶中斷執行(通常是輸入^C)
Exception
常規錯誤的基類
)這些類型錯誤,還有很多種類型錯誤,感興趣的可以去菜鳥教程看一下,這里就不一一列舉了.語法如下:
try:
#嘗試執行的代碼塊
pass
except 錯誤類型1:
#針對錯誤類型1,對應的代碼處理;
except (錯誤類型2,錯誤類型3):
#針對錯誤類型2和3,對應的代碼處理;
except Exception as result:
print("未知錯誤%s"%result)
舉個例子吧:
try:
num= int(input("請輸入整數:"))
result= 8 /numprint(result)exceptValueError:print("請輸入正確的整數")exceptZeroDivisionError:print("除 0 錯誤")
當我執行了上面的代碼之后呢
如果我輸入的是非數字字符,就會得到如下結果:
請輸入整數:啊
請輸入正確的整數
如果我輸入0,就會得到如下結果:
請輸入整數:0
除 0 錯誤
如果我輸入正確的數字,就會得到如下結果:
請輸入整數:2
4.0
但是在實際開發中,為了能夠處理復雜的異常情況我們通常會使用下面這種寫法:
try:
# 嘗試執行的代碼
pass
except 錯誤類型1:
# 針對錯誤類型1,對應的代碼處理
pass
except 錯誤類型2:
# 針對錯誤類型2,對應的代碼處理
pass
except (錯誤類型3, 錯誤類型4):
# 針對錯誤類型3 和 4,對應的代碼處理
pass except
Exception as result:
# 打印錯誤信息
print(result)
else:
# 沒有異常才會執行的代碼
pass
finally:
# 無論是否有異常,都會執行的代碼
print("無論是否有異常,都會執行的代碼")
else 只有在沒有異常時才會執行的代碼
finally 無論是否有異常,都會執行的代碼
try:
num= int(input("請輸入整數:"))
result= 8 /numprint(result)exceptValueError:print("請輸入正確的整數")exceptZeroDivisionError:print("除 0 錯誤")exceptException as result:print("未知錯誤 %s" %result)else:print("正常執行")finally:print("執行完成,但是不保證正確")
上面例子執行之后得到如下輸出結果:
請輸入整數:4
2.0正常執行
執行完成,但是不保證正確
總結
以上是生活随笔為你收集整理的python入门程序异常_Python入门基础(10)_异常_1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: qt通过蓝牙控制单片机_ST发布新款ST
- 下一篇: websocket python爬虫_p