【Python】捕获异常

捕获异常

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)

猜你喜欢

转载自www.cnblogs.com/liudianer/p/11688733.html
今日推荐