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

 

原文地址:https://www.cnblogs.com/6luv-ml/p/7489780.html