raise的作用:
在使用try … except … finally 結構來處理異常的過程中,可以分為兩種情況:
例項:
1. 不使用raise:
# -*- coding: utf-8 -*-
'''功能:不使用raise,測試程式運**況
'''def
example
(inpute):
try:
result = 10 / inpute
except exception, e:
print exception, ':', e
a = 10
print
'a =', a
if __name__ == '__main__':
example(0)
執行結果:
結果分析:
不使用raise丟擲異常,而是在except後面自己列印所帶的異常
程式並不會被終止,後面變數a的賦值和列印正常執行
2. 使用raise:
2.1 不帶引數:
# -*- coding: utf-8 -*-
'''功能:使用raise(不帶引數),測試程式運**況
'''def
example
(inpute):
try:
result = 10 / inpute
except exception, e:
print exception, ':', e
raise
a = 10
print
'a =', a
if __name__ == '__main__':
example(0)
執行結果:
結果分析:
1. 程式在raise丟擲異常後停止執行,並沒有執行下面的變數a的賦值和列印
2. raise丟擲了函式的異常,與我們自己列印的異常相同,均為integer division or modulo by zero, 即:0被除了
2.2 帶引數:
# -*- coding: utf-8 -*-
'''功能:使用raise(帶引數),測試程式運**況
'''def
example
(inpute):
try:
result = 10 / inpute
except exception, e:
print exception, ':', e
raise valueerror
a = 10
print
'a =', a
if __name__ == '__main__':
example(0)
執行結果:
結果分析:
使用raise丟擲異常且帶引數時,我們發現:
1. 程式在raise丟擲異常後停止執行,並沒有執行下面的變數a的賦值和列印
2. 帶引數時,raise會不管函式的異常,直接丟擲引數所帶的異常(如: 這裡的異常應該是0不能被除,但卻丟擲的raise後面的value異常)
3. 所以在使用帶引數時要注意,一般raise後面帶引數,可以丟擲我們自己定義的異常型別
python異常處理 Python 異常處理
使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...
python異常舉例 Python異常處理
1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...
python異常處理
當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...