如果抛出异常,为什么 try 在第一个语句后退出?

Why does try exits after first statement if it throws an Exception?

我是新手python我正在学习异常处理

try:
    print(1/0)
    int(input("number"))
    import bala
except ZeroDivisionError:
    print("Divided by zero")
except KeyboardInterrupt:
    print("dont press ctrl C!")
except ValueError:
    print("Value should be number")
except ModuleNotFoundError:
    print("Module not found")

以上代码在第一个异常后退出,其余 try 语句未执行。我应该为每个语句使用单独的 try-except 块吗?像这样

try:
    int(input("number"))
except ValueError:
    print("Value should be number")

try:
    import bala
except ModuleNotFoundError:
    print("Module not found")

是的,你需要有单独的异常块,因为如果它通过了第一个块,它认为这就是它需要通过的所有内容,所以如果你想测试每个异常块,你应该使用单独的异常块

如果引发异常使得Python停止执行立即。您可以使用 tryexcept 来防止整个程序停止。但是,如果在 try 块中引发异常,它仍然会在那里停止执行,并且只有在适当的 except 块捕获异常(或者如果有 finally 块)时才会继续执行.

简而言之:如果您想继续下一个语句,您需要使用单独的 tryexcept 块。但是如果你想执行下一个语句 only 如果前面的语句没有引发异常你不应该使用单独的 tryexcept 块。

您必须使用多个 try/except 块。

一旦发现错误,停止任何事情的发生,并处理异常。

把它想象成一场火灾。发生火灾时,您可以停止一切并 运行 出去。对于 python 它处理异常