1.什么是异常:

  程序发生错误的信号,程序一旦出错就会抛出异常,程序的运行随即终止

2.异常的三大特征:

  Traceback (most recent call last): (异常的追踪信息)
 File "D:/python/test.py", line 1, in <module> (异常的内容)
  NameError: name 'a' is not defined (异常的类型)

3.为何要处理异常:

  为了增强程序的健壮性,即便是程序运行过程中出错了,也不要终止程序,而上捕捉异常并处理:将错误信息记录到日志内

 

4.如何处理异常

异常分为两大类:

  4.1语法上的错误SyntaxError:

if 1>3
    print('run....')
少:号

  4.2 逻辑上的错误AttributeError:1/0

   针对逻辑上的异常又分为两种处理方式:

    4.2.1:错误发生的条件是可以预知的,使用if判断来解决

 1 age = input('>>>:').strip()
 2 if age.isdigit():
 3     age = int(age)
 4     if age > 18:
 5         print('猜大了')
 6     elif age < 18:
 7         print('猜小了')
 8     else:
 9         print('猜对了')
10 else:
11     print('必须输入数字')

  

  4.2.2:错误发生的条件是无法预知的

 

5.所有异常类型案例

(索引错误)

 1 print('star...')
 2 try:
 3     print('11111111')
 4     l = ['aaa', 'bbb']
 5     l[3]  # 抛出异常IndexError,该行代码同级别后的后续代码不会运行
 6     print('22222222')
 7     xxx
 8     print('33333333')
 9     dic = {'a': 1}
10     dic['a']
11 except IndexError as e:  # (索引错误)
12     print('异常信息:', e)  # list index out of range
13 
14 print('end...')

 

(两个错误:索引、名字)

 1 print('star...')
 2 try:
 3     print('11111111')
 4     l = ['aaa', 'bbb']
 5     l[3]  # 抛出异常IndexError,该行代码同级别后的后续代码不会运行
 6     print('22222222')
 7     xxx
 8     print('33333333')
 9     dic = {'a': 1}
10     dic['a']
11 except IndexError as e:  # (索引错误)
12     print('异常信息:e', e)  # list index out of range
13 except NameError as b:  # (名字错误)
14     print('异常信息:b', b)  # name 'xxx' is not defined
15 print('end...')

==================================
虽然错里两个,但是只提示一个错误信息

 

(捕获所有类型错误)

(try和else)

 

 (try和finally可以单独一起使用)

 

 

 

 

posted on 2023-12-06 14:50  认真的六六  阅读(5)  评论(0编辑  收藏  举报