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

时间:2017-09-02 14:15:13

标签: python exception-handling try-except

我是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")

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

一旦发现错误,发生的任何事情都会停止,异常将以。

处理

将其视为火灾。当发生火灾时,你会停下来然后跑出去。对于python,它处理异常