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
原文地址:https://www.cnblogs.com/liuzhijun666/p/13127239.html