try:將有可能導致出現異常的語句放到try塊中,如果使用了try語句後,後面的程式必須至少要跟一個except或者finally,否則程式會報錯 except:捕獲try塊中可能出現的異常 finally:不管程式是否有無異常,都會最終執行該語句 for example as below: 結果如 ...
try:將有可能導致出現異常的語句放到try塊中,如果使用了try語句後,後面的程式必須至少要跟一個except或者finally,否則程式會報錯
except:捕獲try塊中可能出現的異常
finally:不管程式是否有無異常,都會最終執行該語句
for example as below:
1 #-*- coding:utf-8 -*- 2 ''' 3 Created on 2018年7月28日 4 5 @author: anyd 6 ''' 7 def fun(a,b): 8 try: 9 value = a/b 10 print "The result is:",value 11 12 except Exception: 13 print 'The division can not be 0' 14 15 finally: 16 print 'done' 17 18 fun(1,1)
結果如下:這個是正常程式,未觸發異常
1 The result is: 1
2 done
下麵給一個有異常的如下:
1 #-*- coding:utf-8 -*- 2 ''' 3 Created on 2018年7月28日 4 5 @author: anyd 6 ''' 7 def fun(a,b): 8 try: 9 value = a/b 10 print "The result is:",value 11 12 except Exception: 13 print 'The division can not be 0' 14 15 finally: 16 print 'done' 17 18 fun(1,0)
結果如下:由於給除數賦值為0了,所以程式運行肯定會有問題,這樣就會觸發except
1 The division can not be 0
2 done
以上通過去捕獲異常,大家可以看到python其實上也是運行了成功了,如果不增加異常捕獲的話,大家可以看看下麵例子,整個python就直接報錯了無法運行
1 #-*- coding:utf-8 -*- 2 ''' 3 Created on 2018年7月28日 4 5 @author: anyd 6 ''' 7 def fun(a,b): 8 try: 9 value = a/b 10 print "The result is:",value 11 12 # except Exception: 13 # print 'The division can not be 0' 14 15 finally: 16 print 'done' 17 18 fun(1,0)
輸出如下:
1 done 2 Traceback (most recent call last): 3 File "C:\Users\anyd\eclipse-workspace\test.py", line 18, in <module> 4 fun(1,0) 5 File "C:\Users\anyd\eclipse-workspace\test.py", line 9, in fun 6 value = a/b 7 ZeroDivisionError: integer division or modulo by zero