• python的异常抛出


    1、异常抛出概念

    • 异常:程序运行时,如果python解释器遇到一些错误,并且提示一些错误信息及其说明
    • 抛出:程序异常并且提示等动作

    2、捕获异常

    2.1、最简单的捕获异常方式

    • 在程序中捕获异常一般用try来捕获

    • 最简单捕获方式

      try:
          异常语法
      except:
          异常输出
      

    例子:

    编写一个不能处0的案例

    s1=int(input("请输入一个数字:"))
    try:
        result = 9 / s1
    except:
        print("不能为0")
    

    结果:

    请输入一个数字:0
    不能为0
    
    Process finished with exit code 0
    

    2.2、根据类型捕获异常

    • 在程序中我们要根据不同的错误返回不同的信息

      代码格式如下:

      try:
          异常代码
      except 异常类型:
          提示
      except 异常类型:
          提示
      

      例子:

      try:
          s1 = int(input("请输入一个数字:"))
          result = 9 / s1
      except ZeroDivisionError:
          print("不能为0")
      except ValueError:
          print("请输入正确的整数")
      

      结果1:

      请输入一个数字:a
      请输入正确的整数
      
      Process finished with exit code 0
      

      结果2:

      请输入一个数字:0
      不能为0
      
      Process finished with exit code0
      

    2.3、捕获未知异常

    • 在程序中会遇到未知错误,又想让程序运行,所以我们要捕获斌输出

      格式:

      try:
          异常代码
      except ZeroDivisionError:
          错误提示
      except Exception as a:
          未知信息
      

      例子:

      try:
          s1 = int(input("请输入一个数字:"))
          result = 9 / s1
      except ZeroDivisionError:
          print("不能为0")
      except Exception as a:
          print(f"错误提示{a}")
      

      结果:

      请输入一个数字:a
      错误提示invalid literal for int() with base 10: 'a'
          
      Process finished with exit code 0
      

    2.4、异常抛出的完整语法

    • 实际开发中有些难度,下面为完整的格式

      try:
          异常代码
      except 异常类型:
          提示信息
      except Exception as a:
          提示信息
      else:
          没有异常代码
      finally:
          有没有异常都会执行
      

    例子:

    try:
        s1 = int(input("请输入一个数字:"))
        result = 9 / s1
    except ZeroDivisionError:
        print("不能为0")
    except Exception as a:
        print(f"错误提示{a}")
    else:
        print("123")
    finally:
        print("有没有都会执行")
    

    结果:

    请输入一个数字:0
    不能为0
    有没有都会执行
    
    Process finished with exit code 0
    

    2.5、主动创建异常抛出

    • 我们会在程序中设置一些为满足条件就出现异常,终止程序

    例子:

    输入的年龄大于0且小于100

    def getAge():
        age = int(input("请输入年龄:"))
        if age>0 & age<100:
            return age;
        ex=Exception("age输入错误")
        return ex;
    print(getAge())
    

    结果:

    请输入年龄:-1
    age输入错误
    
    Process finished with exit code 0
    
  • 相关阅读:
    CF 980D Perfect Groups(数论)
    CF 983B XOR-pyramid(区间dp,异或)
    CF 984C Finite or not? (数论)
    CF 979D Kuro and GCD and XOR and SUM(异或 Trie)
    (可能)常用打比赛网站
    排序工作量之新任务(SHOI2001)
    【图楼】长期图楼~~不定期更新
    【题解】SHOI2014概率充电器
    【题解】NOIP2015推销员
    [NOI2015][bzoj4197] 寿司晚宴 [状压dp+质因数]
  • 原文地址:https://www.cnblogs.com/liuzhijun666/p/13127239.html
Copyright © 2020-2023  润新知