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')
如果不知道將會發生什麼錯誤 但是還要保證這段**正常執行 可以使用
deffoo(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')
也可人為丟擲異常
classfooerror(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自動將所有異常名稱放在內建命名空間中,所以程式不必匯...