zoukankan      html  css  js  c++  java
  • 异常处理

    ret = int(input("number:"))
    print(ret*"*")
    执行结果:
    number:10
    **********

    如果输入的是非数字,此时程序就会报错

    ValueError: invalid literal for int() with base 10: 'q'

    友好的报错

    try:
       [][2] ret
    = int(input("number:")) print(ret*"*") except ValueError: #当错误类型为ValueError是执行下面语句 print("输入错误,请输入一个数字")
    except IndexError:
      print("超出列表的最大长度”)
    执行结果: number:q 输入错误,请输入一个数字

    try是我们需要处理的代码

    except 后面跟一个错误类型,当代码发生错误且错误类型符合的时候,就会执行except中的代码

    except支持多分支

    万能异常

    try:
        ret = int(input("number:"))
        print(ret*"*")
    except Exception as error:
        print("老铁,出错了",error)
    执行结果:
    老铁,出错了 invalid literal for int() with base 10: 'qq'

    有了万能处理机制仍然需要把能预测到的问题单独处理

    单独处理的所有内容都应该写在万能异常之前

    try:
        ret = int(input("number:"))
        print(ret*"*")
    except ValueError:
        print("输入的数据类型有误")
    except Exception:
        print("老铁,出错了")
    else:
        print("没有异常的时候就执行else中的代码")
    执行结果:
    number:1
    *
    没有异常的时候就执行else中的代码

    finally :无论成功失败都 执行,在于return相遇时,fimally也会执行,finally通常在函数中使用

    try:
        ret = int(input("number:"))
        print(ret*"*")
    except ValueError:
        print("输入的数据类型有误")
    except Exception:
        print("老铁,出错了")
    else:
        print("没有异常的时候就执行else中的代码")
    finally:
        print("========")

    参考:

    https://www.cnblogs.com/Eva-J/articles/7281240.html#_label6
  • 相关阅读:
    java面试第八天
    java面试第七天
    java面试第六天
    java面试第五天
    java面试第四天
    SpringMVC导出Excel
    75. Autorelease机制及释放时机
    关于 SQLNET.AUTHENTICATION_SERVICES 验证方式的说明
    硬件十万个为什么——运放篇(五)PCB设计技巧
    eclipse到Android Studio的项目迁移
  • 原文地址:https://www.cnblogs.com/wanglan/p/9583983.html
Copyright © 2011-2022 走看看