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


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

參考資料:

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

[1]

正常寫代碼時會遇到錯誤,導致錯誤之后代碼無法繼續(錯了為啥還要繼續……界面友好唄,別讓別人用着用着崩潰了……)。所以提出了try...except(這個java的tyy...catch很像)。一個try至少帶一個except(或finally,見下一個),except負責處理異常,可以處理一個或多個,多個可以用括號括起來,逗號分隔,或者不寫表示處理所有。

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

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

例子:

 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"

運行結果:

0

no error

done

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

另外,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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM