【Python】异常
程序员文章站
2022-05-09 11:09:54
捕获异常 完整语法 异常的传递 主动抛出异常 捕获抛出异常 ......
捕获异常
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)