答案:try-except-finally用于异常处理,保证程序稳定。try块放可能出错代码,except捕获特定异常,如ValueError和ZeroDivisionError,可分别处理;也可用Exception捕获所有异常并获取错误信息;finally块无论是否出错都会执行,常用于关闭文件等清理操作;else块在无异常时执行,适合放置成功后逻辑。合理使用可提升程序健壮性,避免资源泄露。

在python中,try-except-finally语句用于处理程序运行时可能出现的异常,保证程序的健壮性和稳定性。它允许你捕获错误、执行清理操作,无论是否发生异常都能确保某些代码被执行。
try-except基本结构
最简单的异常处理使用try和except。把可能出错的代码放在try块中,当异常发生时,程序跳转到对应的except块处理错误。
try: num = int(input("请输入一个数字: ")) result = 10 / num print(f"结果是: {result}") except ValueError: print("输入的不是有效数字!") except ZeroDivisionError: print("不能除以零!")
上面例子中,如果输入非数字,触发ValueError;如果输入0,触发ZeroDivisionError。不同异常可以分别处理。
捕获所有异常(谨慎使用)
你可以用通用的except:来捕获所有异常,但不推荐这样做,因为它会隐藏真正的错误。
立即学习“Python免费学习笔记(深入)”;
try: risky_operation() except Exception as e: print(f"发生错误: {e}")
Exception是大多数内置异常的基类,使用as e可以获取异常实例,便于调试或记录日志。
finally的作用
finally块中的代码无论是否发生异常都会执行,常用于资源清理,比如关闭文件、释放网络连接等。
file = None try: file = open("data.txt", "r", encoding="utf-8") content = file.read() print(content) except FileNotFoundError: print("文件未找到!") finally: if file: file.close() print("文件已关闭。")
即使读取文件时报错,finally依然会执行关闭操作,防止资源泄露。
try-except-else-finally组合
你还可以加入else块,它在没有异常时执行,通常用于放置“成功后”的逻辑。
try: num = int(input("输入数字: ")) except ValueError: print("格式错误!") else: print(f"你输入的是: {num}") finally: print("输入处理结束。")
只有当try中无异常时,else才会运行。finally始终运行。
基本上就这些。合理使用try-except-finally能让你的程序更稳定,特别是在处理用户输入、文件操作或网络请求时尤为重要。关键是精准捕获异常类型,避免过度使用裸except,并善用finally做清理工作。