插件窝 干货文章 Python try语句中使用exit()函数,except块会被执行吗?

Python try语句中使用exit()函数,except块会被执行吗?

SystemExit 捕获 exit 执行 858    来源:    2025-03-15

在Python中,exit() 函数用于终止程序的执行。当你在 try 块中调用 exit() 时,程序会立即终止,并且不会执行 except 块中的代码。

这是因为 exit() 函数实际上会引发一个 SystemExit 异常,但这个异常不会被 except 块捕获,除非你显式地捕获 SystemExit 异常。

以下是一个示例:

try:
    print("Before exit")
    exit()
    print("After exit")  # 这行代码不会被执行
except Exception as e:
    print("Exception caught:", e)  # 这行代码也不会被执行

在这个例子中,exit() 被调用后,程序会立即终止,因此 "After exit""Exception caught:" 都不会被打印。

如果你希望捕获 SystemExit 异常,可以这样做:

try:
    print("Before exit")
    exit()
    print("After exit")  # 这行代码不会被执行
except SystemExit:
    print("SystemExit caught")  # 这行代码会被执行
except Exception as e:
    print("Exception caught:", e)  # 这行代码不会被执行

在这个例子中,SystemExit 异常被捕获,因此 "SystemExit caught" 会被打印。

总结: - 在 try 块中使用 exit() 会立即终止程序,except 块不会被执行,除非你显式捕获 SystemExit 异常。 - 如果你希望捕获 SystemExit 异常,可以在 except 块中显式捕获它。