Python中的异常处理

本文介绍了Python中的异常处理,包括异常的定义、如何处理异常、try-except的详细用法、自定义异常处理类以及标准异常类。重点讲解了try-except的多分支处理和finally块的使用,以及通过traceback和logging模块记录异常信息。
摘要由CSDN通过智能技术生成

异常

1.什么是异常

【异常在python中是一个对象】

异常简单理解,就是非正常,没有达到预期目标。
异常是一个事件,并且这个异常事件在我们程序员的运行过程中出现,会影响我们程序正常执行。

异常分两种:

  1. 语法错误导致的异常

  2. 逻辑错误导致的异常

#在程序无法正常运行处理时,就会出现一个异常,在python中异常是一个对象,表示一个错误。
#例如:获取一个不存在的索引
a = [1,2,3]
print(a[5])
>>>Traceback (most recent call last):
   File "D:/学习笔记/新职课/第五章-模块,包与库训练/第六节/test.py", line 2, in <module>
       print(a[5])
   IndexError: list index out of range
#IndexError:异常类
#list index out of range   异常信息
#不同的异常有不同的类

2.如何处理异常

  • 如果错误发生的情况是可以预知的,那么就可以使用流程控制进行预防处理

    a,b = 2, '3'
    res = a + b
    print(res)
    #此时会报异常,类为TypeError
    
    #此时错误的发生条件是可以预知的,因为如果要做+运算,要保证a和b可以相加
    a,b = 2, '3'
    if isinstance(b,int):
        print(a+b)
    #通过流程控制进行预防处理
    
  • 如果错误的发生条件不可预知,就可以使用 try: … except: … 在错误发生时进行处理

    语法:
    try:
        可能发生异常错误的代码
    except: 
    	如果发生异常则进入 except 代码块进行处理
    
    '''
    假设读取的文件不存在,会发生错误,可以使用两种方式进行处理,
     1. 可以在文件读取前先判断当前的文件是否存在
     2. 也可以使用try: ... except: ... 在错误发生时进行处理
    注意:try: ... excep: ... 是在错误发生后进行的处理。和if有着根本性的区别。
    if是避免了错误的发生,
    try: ... excep: ...是错误确实发生了,但是程序还可以继续运行
    '''
    

3.try: … except: … 详细用法

  • 使用try: … except: … 处理指定的异常。如果引发了非指定的异常,则无法处理

    try:
        s1 = 'hello'
        int(s1) # 会引发 ValueError
    except ValueError as e:
    # except IndexError as e:  #如果引发了非指定的异常,则无法处理
        print(e)
    >>>invalid literal for int() with base 10: 'hello'
    
  • 多分支处理异常类:不同的异常会走向不同的except处理

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值