7 python异常机制

 1 1,异常机制
 2 例子;
 3      >>> while True:
 4    ...     try:
 5    ...         x = int(raw_input("Please enter a number: "))
 6    ...         break
 7    ...     except ValueError:
 8    ...         print "Oops! That was no valid number.  Try again..."
 9       ---以上是让用户从键盘输入一个数字,如果输入的是非数字,则会一直循环提示用户输入正确的值,直到输入正确
10 
11 2,except 子句:
12      try:
13          open("abc.txt")
14      except FileNotFoundError:    --由于没有写异常变量,所以此except会接收所有系统抛出来的异常
15            print "文件打开失败,文件未找到!!"
16            pass
17      
18      系统抛出的异常有:
19        IOError
20        NameError
21        FileNotFoundError
22      
23      抛出异常的机制:
24        1,如果在运行时发生异常的话,解释器会查找相应的处理语句(称为handle)
25        2,如果在当前函数里没找到,它会将异常传递给上层调用函数,看看上层调用函数能不能处理
26        3,如果在最外层调用函数也没有能接收这个异常的话,解释器就会退出,同时打印出异常提示
27 
28 ## 例子:
29 try:
30     a=12/0
31 except Exception as e:        ## Exception 可以接收任何异常
32     print e
33     print "有异常错误"
34 
35 print "end"
36      
37 3,finally子句
38         即不管异常是会发生,
39         finally子句中的代码都会执行,(保证一些善后工作,不会因为异常退出而不去处理)
40         一般finally子句,文件关闭,释放锁,数据库连接返回给的连接池
41      try:
42         f= open("abc.txt")
43      except FileNotFoundError:    
44            print "文件打开失败,文件未找到!!"
45      finally:
46             f.close()
47             print "OVER!!"
48 
49 4,raise 抛出异常
50       
51       raise  异常名 (异常信息)
52     例:
53    if a>5 :
54       raise too_big ("太大了")  
55 
56     注意:
57       抛出的异常名,必须是系统是定义好的,python中没有自定义的异常名
58       只能自定义抛出。以上例子中的too_big就是提示未定义
59 
60     例如:
61     try:
62     if 1==1:
63           raise NameError
64     except NameError:
65           print ("xxxxxxxxx")

猜你喜欢

转载自www.cnblogs.com/2mei/p/9254071.html