python 的异常处理

ernestwang 1 0

异常处理

相关概念

  • 错误:程序运行之前的语法问题。如:关键字、缩进对齐、符号不成对等
  • 异常:程序运行过程中出现的问题。如:除数为0、下标越界、访问不存在的对象属性等

异常处理

  • 说明
    • 异常处理就是在程序出现异常时进行人为的干预
    • 异常处理可以认为是一种特殊的流程控制语句
    • 异常处理可以提高代码的健壮性
  • 语法
    try:
        print('正常代码')
        a = 10 / 0
        print('执行结束')
    except Exception as e:
        # Exception是所有异常的基类
        # 捕获异常,然后进行异常的处理
        print('出现异常', e)
    
    print('OVER')
  • 多异常处理
    '''
    # 每种异常都有特定的处理方案,可以进行单独处理
    try:
        print('正常代码')
        # print(a)
        # print(10/0)
        print([][3])
        print('正常结束')
    except NameError as e:
        print('NameError', e)
    except ZeroDivisionError as e:
        print('ZeroDivisionError', e)
    except Exception as e:
        print('其他异常', e)
    '''
    try:
        print('正在执行')
        # print(a)
        print(10/0)
        print('正常结束')
    except (NameError, ZeroDivisionError) as e:
        # 分组处理异常
        print('NameError or ZeroDivisionError', e)
    except Exception as e:
        print('其他异常', e)
        
    print('OVER')    
  • 完整异常结构
    try:
        print('正常执行')
        print(10/0)
        print('正常结束')
    except Exception as e:
        print('出现异常', e)
    else:
        print('else语句:没有异常时会执行')
    finally:
        print('finally语句:无论有无异常都执行')
    
    print('OVER')
  • 手动抛出异常
    try:
        print('正常执行')
        # 手动抛出异常
        raise Exception('手动抛出的异常')
        print('正常结束')
    except Exception as e:
        print('出现异常', e)
    
    print('OVER')
  • 异常嵌套
    print('我要去上班,什么也阻止不了上班的脚步')
    
    try:
        print('我准备骑电动车去上班')
        raise Exception('不知道哪个粗心的家伙把我充电器弄掉了')
        print('骑电车提前到达公司')
    except Exception as e:
        print('电车异常:', e)
        try:
            print('于是我准备坐公交车去上班')
            raise Exception('等了15分钟一直没有公交车到来')
            print('乘坐公交准时到达公司')
        except Exception as e:
            print('公交异常:', e)
            print('于是决定打车去上班')
            print('打车还是快,提前达到公司')
    
    print('热情满满开始一天的工作')
  • 自定义异常类

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~