python—day24

异常处理:

1、什么是异常:

  异常是错误发生的信号,

  程序一旦出错,如果程序中还没有相应的处理机制

  那么该错误就回产生一个异常抛出来

  程序的运行也随之终止

2、一个异常分为三部分:

  1、异常的追踪信息;

  2、异常的类型;

  3、异常的值;

3、异常的分类

  1、语法异常:

 1 这类异常应该在程序执行前就改正
 2         print('start....')
 3         x=1
 4         x+=1
 5         if
 6         print('stop....')
 7 IndexError
 8 l=['a','b']
 9 l[100]
10 
11 KeyError
12 d={'a':1}
13 d['b']
14 
15 AttributeError:
16 class Foo:
17     pass
18 
19 Foo.x
20 import os
21 os.aaa
22 
23 
24 ZeroDivisionError
25 1 / 0
26 
27 
28 FileNotFoundError
29 f=open('a.txt','r',encoding='utf-8')
30 
31 ValueError: I/O operation on closed file.
32 f=open('a.txt','r',encoding='utf-8')
33 f.close()
34 f.readline()
35 
36 ValueError: invalid literal for int() with base 10: 'aaaaa'
37 int('aaaaa')
38 
39 
40 TypeError
41 for i in 333:
42     pass
43 
44 NameError
45 x
46 func()
View Code

    

  2、逻辑上的异常:

 1 单分支:
 2 try:
 3     print('start...')
 4     x = 1
 5     y
 6     l = []
 7     l[3]
 8     d = {'a':1}
 9     d['b']
10     print('end...')
11 
12 except NameError:
13     print('变量名没有定义')
14     
多分之
try:
    print('start...')
    x = 1
    y
    l = []
    l[3]
    d = {'a': 1}
    d['b']
    print('end...')

except NameError:
    print('变量名没有定义')
except KeyError:
    print('字典的key不存在')
except IndexError:
    print('索引超出列表的范围')

print('other...')
 1 多种异常采用同一段逻辑处理
 2 try:
 3     print('start...')
 4     x = 1
 5     y
 6     l = []
 7     l[3]
 8     d = {'a': 1}
 9     d['b']
10     print('end...')
11 
12 except (NameError,KeyError,IndexError):
13     print('变量名或者字典的key或者列表的索引有问题!')
14 
15 print('other...')
 1 万能异常
 2 try:
 3     print('start...')
 4     x = 1
 5     y
 6     l = []
 7     l[3]
 8     d = {'a': 1}
 9     d['b']
10     print('end...')
11 except Exception as e:
12     print('万能异常',e)

猜你喜欢

转载自www.cnblogs.com/kermitjam/p/8876458.html