欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【Python】异常

程序员文章站 2023-11-18 19:50:46
捕获异常 完整语法 异常的传递 主动抛出异常 捕获抛出异常 ......

捕获异常

try:
    num = int(input("请输入一个整数:"))
    result = 8 / num
    print(result)
except valueerror:
    print("请输入正确的整数")
except exception as ret:
    print("未知错误 %s" % ret)

完整语法

try:
    num = int(input("请输入一个整数:"))
    result = 8 / num
    print(result)
except 错误类型1:
    # 针对性处理
except 错误类型2:
    # 针对性处理
except (错误类型3,错误类型4):
    # 针对性处理
except exception as five:
    print(five)
else:
    # 没有异常才会执行的代码
finally:
    # 无论是否有异常,都会执行的代码
    print("无论是否有异常,都会执行的代码")

异常的传递

def demo1():
    return int(input("输入整数:"))

def demo2():
    return demo1()

# 利用异常的传递性,在主程序捕获异常
try:
    print(demo2())
except exception as ret:
    print("[error] %s" % ret)
else:
    print("ok")
print('&' * 50)

主动抛出异常

def input_password():

    # 1. 提示用户输入密码
    pwd = input("请输入密码:")
    # 2. 判断密码长度 >=8 ,返回用户输入的密码
    if len(pwd) >= 8:
        return pwd
    # 3. 如果 < 8 主动抛出异常
    print("主动抛出异常")
    # 1> 床架异常对象
    ex = exception("密码长度不够")
    # 2> 主动抛出
    raise ex

print(input_password())

捕获抛出异常

def input_password():

    # 1. 提示用户输入密码
    pwd = input("请输入密码:")
    # 2. 判断密码长度 >=8 ,返回用户输入的密码
    if len(pwd) >= 8:
        return pwd
    # 3. 如果 < 8 主动抛出异常
    print("主动抛出异常")
    # 1> 床架异常对象
    ex = exception("密码长度不够")
    # 2> 主动抛出
    raise ex

try:
    print(input_password())
except exception as re:
    print(re)