开始看代码了,靠本身那点小基础是远远不够的,下面整理了一些与我而言的新的知识点。html
参考资料:java
【1】(Python)异常处理try...except、raise——我是爱哭鬼 传送门spa
正常写代码时会遇到错误,致使错误以后代码没法继续(错了为啥还要继续……界面友好呗,别让别人用着用着崩溃了……)。因此提出了try...except(这个java的tyy...catch很像)。一个try至少带一个except(或finally,见下一个),except负责处理异常,能够处理一个或多个,多个能够用括号括起来,逗号分隔,或者不写表示处理全部。code
1 try: 2 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