Python內建的處理異常機制與除錯

2022-05-13 20:05:02 字數 1989 閱讀 4702

python 內建了一套 try..except...finally的錯誤處理機制

python內建的try...except...finally用來處理錯誤十分方便。出錯時,會分析錯誤資訊並定位錯誤發生的**位置才是最關鍵的。

先跑一遍程式

try:  #

先執行 可能會發生錯誤的**

print('

try...')

r = 10 / int('2'

)

print('

result:

', r)

except

valueerror as e: 捕捉 異常的型別 並進行修飾

print('

valueerror:

', e)

except

zerodivisionerror as e:

print('

zerodivisionerror:

', e)

else: #

當沒有錯誤發生時 都會執行這段**卡

print('

no error!')

finally: #

無論有沒有 錯誤 流程體結束都會執行 finally

print('

finally...')

print('

end')

如果不知道將會發生什麼錯誤 但是還要保證這段**正常執行  可以使用

def

foo(s):

return 10 /int(s)

defbar(s):

return foo(s) * 2

defmain():

try:

bar('0

')except exception as e: #

exception可以允許你不事先指定錯誤原因 只要檢測到 異常 就會執行

print('

error:

', e)

finally

:

print('

finally...

')

#

python內建的logging 模組

#可以記錄下來錯誤 通過配置,logging還可以把錯誤記錄到日誌檔案裡,方便事後排查

import

logging

deffoo(s):

return 10 /int(s)

defbar(s):

return foo(s) * 2

defmain():

try:

bar('0

')except

exception as e:

logging.exception(e)

main()

print('

end')

也可人為丟擲異常

class

fooerror(valueerror):

pass

a= 1

if a !=0:

raise fooerror('

invalid value: %s

' %s)

else

:

print('ok'

)-----------------------------------traceback (most recent call last):

file

"c:/users/hxsd/pycharmprojects/helloworld/類的__slots__.py

", line 47, in

raise fooerror('

invalid fooerror

') #

自定義丟擲的錯誤資訊

__main__.fooerror: invalid fooerror

Python的異常處理機制

當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...

Python的異常處理機制

當你的程式 現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file li...

Python 異常處理機制

python的異常處理能力是很強大的,可向使用者準確反饋出錯資訊。在python中,異常也是物件,可對它進行操作。所有異常都是基類exception的成員。所有異常都從基類exception繼承,而且都在exceptions模組中定義。python自動將所有異常名稱放在內建命名空間中,所以程式不必匯...