[toc]
# 異常處理
python所有的錯誤都是從baseexception類派生的,常見的錯誤型別和繼承關係看這裡:
## 語法
~~~ python
try:
pass
except:
pass
finally:
pass
例:try:
print 10 / 0
except exception, e:
print e
finally:
print 'finally...'
* 如果錯誤沒有**獲,它就會一直往上拋,最後被python直譯器捕獲,列印乙個錯誤資訊,然後程式退出。
~~~ python
異常會被python直譯器捕獲
def foo(s):
return 10 / int(s)
def bar(s):
return foo(s) * 2
def main():
bar('0')
>>> main()
## 自定義異常類
* 語法:
➣ ` class customexception(exception): pass`
* 向其他類一樣,只要確保從exception類繼承(不管是間接還是直接的,就是說繼承其他的內建異常類也可以)
## 多個except
~~~ python
try:
x = input('enter the first number: ')
y = input('enter the second number: ')
print x / y
except zerodivisionerror:
print 'zerodivisionerror...'
except typeerror:
print 'typeerror...'
# 或except (zerodivisionerror, typeerror):
print 'error message...'
## 獲取異常的物件 e
~~~ python
try:
print 1 / 0
except (zerodivisionerror, typeerror), e:
print 'error message: ', e
## 給try/except新增else語句
**else中的語句**只有在**沒有異常**發生的時候**才會執行**
* 語法:
~~~ python
try:
except:
else:
finally:
~~~ python
例:輸入不正確會引異常,程式就會不斷要求輸入
輸入正確沒有異常,就會執行else中的語句,結束程式
while true:
try:
x = input('enter the first number: ')
y = input('enter the second number: ')
print x / y
except:
print 'invalid input,please try again!'
else:
break
finally:
print 'exec finally...'
## raise關鍵字
將異常拋向上層呼叫處
~~~ python
def cacl():
try:
print 1 / 0
except:
raise exception('something is wrong!') # 從此處丟擲異常到標記二處
def exec_cacl():
cacl() # 標記二 此處將異常繼續外拋至標記三處
# 標記三 此處異常未做處理,程式強制終止
>>> exec_cacl()
# 下面**給呼叫exec_cacl函式新增了異常捕捉優化處理
# 程式捕捉到異常後,會繼續向下執行,不會強制終止程式
try:
exec_cacl()
except exception, e:
print 'exec_cacl errorinfo: ', e
返回頂部
C Primer Plus第八章課後答案
其他章節答案 project 1 includeint main void project 2 includeint main void else break n if n 10 return 0 或者 includeint main void else printf c d,ch,ch n if ...
Python基礎 第八章
到斜槓與正斜槓 windows中,路徑書寫使用倒斜槓作為資料夾之間的分隔符,os x和linux上,則使用正斜槓作為它們的路徑分隔符。獲取當前工作目錄 os.getwd 即可獲得當前工作路徑的字串。絕對路徑和相對路徑 絕對路徑 總是從根資料夾開始,相對路徑 相對於程式的當前工作目錄。os.path模...
第八章 python 元組
基本上元組的每乙個資料稱元素,元素可以是整數 字串或列表等,這些元素放在小括號 內,彼此用逗號 隔開。如果要列印元組內容,可以用 print 函式,將元組名稱當作變數名稱即可。如果元組內的元素只有乙個,在定義時需在元素右邊加上逗號 例 定義與列印元組,最後使用 type 列出元組資料型別 numbe...