Python 中的异常处理是通过 try
和 except
语句来实现的。这种方式允许程序在发生错误时捕获异常,并有选择地处理它们,而不是使整个程序崩溃。捕捉程序有可能产生的异常,防止程序由于异常导致的出错闪退,有可能有也可能不发生。
try:执行有可能出错误的代码(通常与except关联使用),如果发生异常则跳转到except;
except: 捕获到具体异常,针对处理(如果try中出现异常类型,则执行该部分代码);
else: 如果没有异常就执行;
finally: 有没有异常都会执行(常用于执行清理工作,如:关闭文件);
Exception:所有异常类的父类 可以捕获所有异常 不够具体。
1.异常传递:
input_value = input("输入数字")
try:
input_value = int(input_value)
print(f"{input_value}")
except TypeError as e:
print("类型异常")
except ValueError as e:
print("值转换异常")
except ZeroDivisionError as e:
print("除数为0")
except Exception as e:
print(f"输入有误,类型转换失败", e)
else:
if input_value % 2 == 1:
print("奇数")
elif input_value % 2 == 0:
print("偶数")
finally:
print("是否有误都执行")
print("end")
无异常:
有异常
2.自定义异常:
除了 Python 内置的异常类型,还可以自定义的异常类型。
自定义异常类型:小于1
class LTOne(Exception):
def __init__(self, msg):
super().__init__(msg)
while True:
input_value = input("输入正整数")
try:
input_value = int(input_value)
try:
if input_value < 1:
raise LTOne("小于1")
except LTOne as e:
print("异常,重新输入")
else:
print("奇数" if input_value % 2 == 1 else "偶数")
break
except ValueError as e:
print("输入无法转为数字,请重新输入")
无异常:
有异常: