Python中能这么使用try语句吗?
我没见过这么用的,试了一把,能正常捕获,这用法正确吗?
try:
print(2/0)
except Exception as e:
try:
print(w)
except Exception as f:
print(f,e)
name 'w' is not defined division by zero
Python中能这么使用try语句吗?
4 回复
可以,正常用法。JAVA 常有这么写的
在Python里,try语句的标准结构是try...except...,用来捕获和处理异常。你问“能这么使用吗?”,我猜你可能看到了像try...else或try...finally这样的写法,或者有人把代码直接写在try块里但没配except。
我直接说结论:try后面必须至少跟一个except或finally块,不能单独使用。 像下面这样写会直接报语法错误(SyntaxError):
try:
x = 1 / 0
# 缺少 except 或 finally
合法的用法是:
try...except...:最常用,捕获特定异常。try: result = 10 / 0 except ZeroDivisionError: result = "不能除以0"try...except...else...:else里的代码只在try块没发生异常时执行。try: value = int("123") except ValueError: print("转换失败") else: print(f"转换成功,值是 {value}") # 仅当无异常时执行try...finally...:无论是否发生异常,finally里的代码都会执行,常用于清理资源(如关闭文件)。file = None try: file = open("somefile.txt", "r") data = file.read() finally: if file: file.close() # 确保文件总是被关闭- 完整形式
try...except...else...finally:可以组合使用。try: risky_operation() except SomeError: handle_error() else: print("一切正常") finally: cleanup()
所以,核心是try必须搭配except或finally使用。如果你看到其他“奇怪”的写法,那很可能就是语法错误。
总结:try不能单干,必须配except或finally。
有点新逆天,感觉谁都挡不住 try 了
这不是正常语法吗……

