python异常处理关键字_Python中的异常处理
異常
在程序開發(fā)中,如果對于某些代碼的執(zhí)行不確定(程序的語法完全正確),并非程序本身的錯(cuò)誤,是與外界交互時(shí),外界輸入不規(guī)范造成的。以下是處理異常的方法:
一、單個(gè)異常:# 只有一個(gè)異常產(chǎn)生
try:
num = int(raw_input("請輸入一個(gè)整數(shù):"))except:print "請輸入一個(gè)整型"
二、多個(gè)異常
如果有多個(gè)異常時(shí),可以在except后邊添加異常的類型。(異常的類型可以通過錯(cuò)誤測試得到;當(dāng)python解釋器出現(xiàn)異常時(shí),最后一行提示的第一個(gè)單詞為錯(cuò)誤類型)# 多個(gè)異常產(chǎn)生,使用多個(gè)except.
try:
num = int(raw_input("請輸入一個(gè)整數(shù):"))
reslt = 8 / num
print reslt
except ZeroDivisionError:
print "除數(shù)不能為0!"
except ValueError:
print "類型不正確,請輸入整數(shù)!"三、捕獲未知異常:
在開發(fā)的時(shí)候,要判斷所有可能出現(xiàn)的異常是一定的難度的。所以,如果希望程序無論出現(xiàn)任何錯(cuò)誤,都不會(huì)因python解釋器拋出的異常而終止,我們再可以增加一個(gè)except來接收未知錯(cuò)誤。# 有未知異常的時(shí)候,進(jìn)行如下捕獲
try:
num = int(raw_input("請輸入一個(gè)整數(shù):"))
reslt = 8 / num
print reslt
except ZeroDivisionErrot:
print "除數(shù)不能為0"
except Exception as result:# result變量是隨便起的,可以接收錯(cuò)誤信息
print "未知異常:%s" % result四、完整的異常捕獲:
使用關(guān)鍵字:try ---> else ---> finally ;其中try后面為可能出現(xiàn)異常的代碼,else后為可能為結(jié)果正確的才會(huì)執(zhí)行的碼,finally后為無論程序是否有異常,都會(huì)執(zhí)行的代碼。try:
num = int(raw_input("請輸入一個(gè)整數(shù):"))
reslt = 8 / num
print reslt
except ZeroDivisionErrot:
print "除數(shù)不能為0"
# 捕獲未知異常
except Exception as result:# result變量是隨便起的,可以接收錯(cuò)誤信息print "未知異常:%s" % result
# 只有程序正確的時(shí)候,才會(huì)執(zhí)行elseesle:
print "程序正常執(zhí)行!"
# 程序無論是否異常,都會(huì)執(zhí)行finally中代碼
finally:
print "hello world!!!"五、主動(dòng)拋出異常情況:# 實(shí)例:輸入一個(gè)密碼。當(dāng)密碼為長度 >= 8合理,返回密碼輸入的密碼;否則異常
def demo()
# 提示用戶輸入密碼
pawd = raw_input("請輸入密碼:")
# 對密碼的長度進(jìn)行判斷
if len(pawd) >= 8:
return pawd
# 當(dāng)密碼長度小于8時(shí),主動(dòng)拋出異常(首先創(chuàng)建異常對象,添加異常信息)
expt = Exception("密碼長度不夠!!!")
raise expt
# 注意:只拋出異常而不捕獲,會(huì)出現(xiàn)錯(cuò)誤;以下是捕獲異常的部分
try:
print demo() # 若密碼正確,輸出密碼;錯(cuò)誤的話,輸出錯(cuò)誤的提示信息
except Exception as result:
print "異常信息提示:%s" %result
else:
print "密碼設(shè)計(jì)成功!!"
總結(jié)
以上是生活随笔為你收集整理的python异常处理关键字_Python中的异常处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python编程求导数_用python怎
- 下一篇: android学习资料_5G到来未来五年