日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python异常捕获_Python-异常捕捉

發(fā)布時間:2024/9/19 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python异常捕获_Python-异常捕捉 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

為什么要使用異常捕捉

在運行程序的某一個功能時,可能會出現(xiàn)這樣的錯誤或者那樣的錯誤,有時一個功能可能是由多個模塊組合而成的,這樣排錯就無法追蹤是哪個環(huán)節(jié)出了問題,這時候就需要一個異常處理器來捕獲這些異常。

一般程序遇到異常時會自動退出程序并拋出異常,在使用try語句來檢測錯誤時,遇到錯誤則會跳轉(zhuǎn)到try處理器,程序會在try之后重新執(zhí)行。

有時候,為了處理一些不常見的異常情況,就需要用到異常處理器,避免編寫應對特殊情況的代碼。

try/finally語句確保一定會進行需要的結束運算,無論程序是否有異常都將會執(zhí)行finally語句下的代碼。

def foo(a,b):

a/b

>>> foo(10,0)

當b(除數(shù))等于0的時候就會觸發(fā)異常便會觸發(fā)默認的異常管理器并拋出異常,打印標準出錯信息立即終止程序

當運行一個小的腳本時遇到異常啟動默認管理器拋出異常并程序終止是可行的,在有些情況這并不是我們想要的,例如服務器程序在內(nèi)部某個地方發(fā)生錯誤需要依然保持工作,則需要把相關代碼裝在try語句內(nèi)捕捉異常。

def foo(a,b):

try:

a/b

except:

print(‘程序出現(xiàn)異常’)

上面的except子句沒有接任何異常和參數(shù),所有無論try捕獲了任何異常都將會交給except子句來處理無法定位具體異常,這樣和默認異常管理相比就是不會中斷程序。

def foo(a,b):

try:

a/b

except ZeroDivisionError:

print(‘除數(shù)不能為0’)

print(‘continuing’)

>>>foo(1,0)

除數(shù)不能為0

continuing

上面的例子中,except子句后接了具體異常,只處理除0的異常,所以當b等于0時,才會啟動try管理器執(zhí)行后續(xù)代碼并且能看到最后輸出continuing。其他異常則想上層冒泡并執(zhí)行默認異常管理器,程序中斷,標準輸出錯誤信息。

try:

num = int(raw_input(“輸入一個整數(shù):”))

print(100/num)

except ZeroDivisionError:

print(“Error:必須大于等于1!”)

except ValueError:

print(“Error:必須輸入整數(shù)!”)

try語句也可以捕獲多個異常,上面的例子中既捕獲了除0的錯誤同時也捕獲了ValueError 錯誤。

def foo(a,b):

try:

a/b

except ZeroDivisionError,e:

print(‘除數(shù)不能為0’)

>>> e

>>> integer division or modulo by zero

看到上面的例子你可能會問這個e是個什么鬼,這個e其實是一個異常類的實例,是代碼更加詳細的錯誤信息。

def foo():

try:

f = open(‘test.txt’

except IOError,e:

print(‘錯誤信息:%s’%e)

else:

print(‘無錯誤’)

>>>f.close()

try的else語句和其他條件語句類似,看了例子應該就會明白了。

def foo():

try:

f = open(‘test.txt’)

except IOError,e:

print(‘錯誤信息:%s’%e)

else:

print(‘無錯誤’)

finally:

f.close()

在有些情況下有些操作無論你前面的代碼是否執(zhí)行成功都需要執(zhí)行的情況下,finally子句就用的上了例如上面例子中無論文件test.txt操作是否成功都需要關閉文件。 總結下Python的完整異常語句,需要針對不同的業(yè)務場景靈活使用。

try:

try_suite

except Exception1,Exception2,…,Argument:

exception_suite

…… #other exception block

else:

no_exceptions_detected_suite

finally:

always_execute_suite

總結

以上是生活随笔為你收集整理的python异常捕获_Python-异常捕捉的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。