zoukankan      html  css  js  c++  java
  • 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
    长得丑就应该多读书。我爱学习,只爱学习,最爱学习!
  • 相关阅读:
    gRPC-web现状及测试
    文件差异性 订单列表差异性 列表数据更新 比较
    Writing a Time Series Database from Scratch | Fabian Reinartz https://fabxc.org/tsdb/
    Prometheus is a system to collect and process metrics, not an event logging system
    whisper
    New in Prometheus v2.19.0: Memory-mapping of full chunks of the head block reduces memory usage by as much as 40%
    使用proxy是实现集中式和分布式监控的最简单方法
    t
    SSO登录 企业域名
    指针分析 Pointer Analysis
  • 原文地址:https://www.cnblogs.com/xc-718/p/9768725.html
Copyright © 2011-2022 走看看