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

相关文章
相关标签/搜索