try,raise等的python的使用方法介紹

開始看代碼了,靠本身那點小基礎是遠遠不夠的,下面整理了一些與我而言的新的知識點。html

參考資料:java

【1】(Python)異常處理try...except、raise——我是愛哭鬼  傳送門spa

[1]

正常寫代碼時會遇到錯誤,致使錯誤以後代碼沒法繼續(錯了爲啥還要繼續……界面友好唄,別讓別人用着用着崩潰了……)。因此提出了try...except(這個java的tyy...catch很像)。一個try至少帶一個except(或finally,見下一個),except負責處理異常,能夠處理一個或多個,多個能夠用括號括起來,逗號分隔,或者不寫表示處理全部。code

1 try2     pass
3 except (IOError ,ZeroDivisionError),e:
4     print e
5 #這裏面就是處理了兩個異常,另外,那個e前須要一個逗號喲

try ....except...else 語句,當沒有異常發生時,else中的語句將會被執行。htm

例子:blog

 1 a=10
 2 b=0
 3 try:
 4     c = b/ a
 5     print c
 6 except (IOError ,ZeroDivisionError),x:
 7     print x
 8 else:
 9     print "no error"
10 print "done"

運行結果:繼承

0get

no errorinput

doneit

 *************

另外,try也能夠和finally連用,包括try...except...finally也是能夠的,這個和JAVA同樣,不管結果如何都會執行finally內的代碼。

*************

raise也能夠拋出異常,它是「引起一個異常」(引起?是否是說其實不必定真的有異常,但能夠強制拋出來一個?)

例子:若是輸入的數據不是整數,則引起一個ValueError

1 inputValue=input("please input a int data :")
2 if type(inputValue)!=type(1):
3     raise ValueError
4 else:
5     print inputValue

假設輸入1.2,運行結果爲:

please input a int data :1.2
Traceback (most recent call last):
File "C:/Users/lirong/PycharmProjects/untitled/openfile.py", line 3, in <module>
raise ValueError
ValueError

若是輸入1,運行結果爲:

please input a int data :1
1

*********

最後呢,還能夠本身自定義異常(重點是格式):

自定義一個MyException類,繼承Exception。

1 class MyException(Exception):
2     def __init__(self,message):
3         Exception.__init__(self)
4         self.message=message 

若是輸入的數字小於10,就引起一個MyException異常:

1 a=input("please input a num:")
2 if a<10:
3     try:
4         raise MyException("my excepition is raised ")
5     except MyException,e:
6         print e.message

 

運行結果:

please input a num:1
my excepition is raised

相關文章
相關標籤/搜索