今天是Python学习的第二十五天,这两天的学习重点会是Python中的异常处理(Exception Handling),今日学习进阶异常处理与自定义异常,学习 else 和 finally 的使用方式,学会自定义异常并在程式中应用,理解如何在错误处理中提升程式的稳定性与可读性。
例一:else 与 finally 的使用else 区块可以在没有异常发生时执行额外的代码。finally 区块无论是否发生异常都会执行,通常用来释放资源或进行收尾操作。
try:num = int(input("请输入一个数字: "))result = 10 / numexcept ZeroDivisionError:print("错误:不能除以 0!")else:print(f"结果是: {result}")finally:print("程式执行结束。")
如果没有发生异常,else 会执行并输出结果。finally 无论异常是否发生,最终都会执行,这在需要关闭文件或释放系统资源时非常有用。
例二:自定义异常有时候,我们可能希望定义自己的异常类型,以应对程式中的特定错误情况。
class NegativeNumberError(Exception):"""自定义异常:负数错误"""pass
def check_positive(num):if num < 0:raise NegativeNumberError("不能是负数!")return num
try:num = int(input("请输入一个正数: "))check_positive(num)print(f"输入的是: {num}")except NegativeNumberError as e:print(f"错误:{e}")
自定义异常类别通过继承 Exception 类别来实现,并可以在合适的情况下用 raise 触发。这可以帮助我们更加精确地控制程式的错误逻辑。
例三:raise 关键字raise 允许我们主动触发异常,这在处理业务逻辑时非常有用。
try:raise ValueError("这是一个自定义的错误")except ValueError as e:print(f"捕捉到错误: {e}")
raise 关键字会触发后面的异常类型,并且可以附带自定义的错误讯息。
这两天的学习让我全面了解了 Python 异常处理的基本机制与进阶应用。异常处理是一个保障程式稳定运行的关键技术,通过 try-except 语句,我能够捕捉错误,并在发生异常时做出合适的处理。学会了 else 和 finally 之后,程式的结构更加清晰,并且自定义异常让我能根据具体需求设计错误逻辑,进一步强化了我的程式错误处理能力。