• Python——异常处理


    异常:代码中的逻辑错误

    程序一旦发生错误,就从错误的位置停下来不继续执行

    使用try和except就能处理异常

    try:
        int('aaa')
        print('111')    # 检查错误的位置
        1/0
        print('222')
        name
        print('333')
        2 + '3'
        [][3]
        {}['k']
        ret = int(input('number >>> '))
        print(ret * '*')
    except ValueError:
        print('输入的数据类型有误')
    except IndexError:
        print('超出列表的最大长度了')
    except Exception:
        print('你错了')
    else:
        print('没有异常的时候执行此代码')
    finally:
        print('不管代码有没有异常,都执行此代码')
    View Code

      1. try:

        需要处理的错误代码

      2. except:     

        except + 错误类型:当代码发生错误且错误类型符合时,执行此段代码
        except 支持多分支
        except + Exception: 万能异常处理
          有了万能异常处理仍然要把能预测到的问题单独处理
          单独处理的所有内容都应该写在万能异常之前

    # 可以看到报错信息的异常处理
    
    try:
        int('aaa')
        print('111')    # 检查错误的位置
        1/0
        print('222')
        name
        print('333')
        2 + '3'
        [][3]
        {}['k']
        ret = int(input('number >>> '))
        print(ret * '*')
    except Exception as error:  # 可以看到报错信息
        print('你错了',error)
    View Code

      3. else:

        没有异常的时候执行此代码

      4. finally:

        不管代码有没有异常,都执行此代码
        finally 和 return 相遇的时候,依然会执行
          执行到return时,发现后面还有finally,先执行finally,再返回
          常用于在函数中做异常处理,不管是否异常,去做一些收尾工作(如:关闭文件)

    # finally的用法
    
    # (1)不用finally
    def func():
        try:
            f = open('file','w')
            f.close()
            return True
        except:
            f.close()
            return False
    print(func())
    
    
    # (1)使用finally
    # 执行到return时,发现后面还有finally,先执行finally,再返回
    def func():
        try:
            f = open('file','w')
            return True
        except:
            return False
        finally:
            print('执行finally了')
            f.close()
    print(func())
    View Code
    长得丑就应该多读书。我爱学习,只爱学习,最爱学习!
  • 相关阅读:
    安装pykeyboard模块
    Windows Defender Antivirus Service经常性出现占用CPU厉害
    Xpath 语法笔记
    通过docker部署rocketmq双主双从集群
    解决提取Mybatis多数据源公共组件“At least one base package must be specified”的问题
    设计模式-单例模式
    通过阳历生日计算星座,阴历生日,生辰八字,生肖五行
    设计模式-抽象工厂模式
    设计模式-工厂方法模式
    常用的MD5工具类
  • 原文地址:https://www.cnblogs.com/xc-718/p/9768725.html
Copyright © 2020-2023  润新知