捕獲異常:try…except…finally
"""
try 捕獲異常
"""try
:print
('try...'
) r =10/
int(
'0')
print
('result:'
, r)
except valueerror as e:
print
('valueerror:'
, e)
except zerodivisionerror as e:
print
('zerodivisionerror:'
, e)
else
:print
('no error '
)finally
:print
('finally....'
)print
('end'
)# 不需要在每個可能出錯的地方去捕獲錯誤,只要在合適的層次去捕獲錯誤就可以了
deffoo
(s):
return10/
int(s)
defbar
(s):
return foo(s)*2
defmain()
:try
: bar(
'0')
except exception as e:
print
('error:'
, e)
finally
:print
('finall......'
)main(
)
記錄錯誤:logging
"""
記錄錯誤:
1-python內建的logging模組可以非常容易地記錄錯誤資訊
2-程式列印完錯誤資訊後會繼續執行,並正常退出
"""import logging
deffoo
(s):
return10/
int(s)
defbar
(s):
return foo(s)*2
defmain()
:try
: bar(
'0')
except exception as e:
logging.exception(e)
main(
)print
('end~~~'
)
丟擲錯誤:raise
"""
丟擲錯誤:
--如果要丟擲錯誤,首先根據需要,可以定義乙個錯誤的class,選擇好繼承關係,然後,用raise語句丟擲乙個錯誤的例項:
"""class
fooerror
(valueerror)
:pass
deffoo
(s):
n =int(s)
if n ==0:
raise fooerror(
'invalid value: %s'
% s)
return
10/ n
foo(
0)
另外一種錯誤處理方式
"""
丟擲錯誤:raise語句如果不帶引數,就會把當前錯誤原樣丟擲
"""def
foo(s)
: n =
int(s)
if n ==0:
raise valueerror(
'invalid value: %s'
% s)
return
10/ n
defbar()
:try
: foo(
'0')
except valueerror as e:
print
('valueerror!'
)raise
bar(
)
python學習系列 day09
一 圖形介面 1 tkinter 2 turtle 二 網路程式設計 1 tcp程式設計 1 客戶端 import socket s socket.socket socket.af inet,socket.sock stream af inet表示利用的ipv4,af inet6表示用ipv6。so...
python學習筆記day09 函式
函式的定義和函式的呼叫不是一回事,程式執行時,遇到定義函式,只會執行定義函式名處,裡面的函式體這個時候是不會執行的 只有到呼叫函式處才會執行裡面的函式體 沒有返回值 無 return 返回none 只有 return 返回none return none 返回none 有返回值 可以返回任意資料型別...
python之路day09 函式
s 金老闆啊 print len s 內建函式 s 金老闆啊 def my len i 0 for k in s i 1 print i print my len none s 金老闆啊 def my len 自定義函式 i 0 for k in s i 1 print i return i 返回值...