为什么try语句在第一个语句后退出,如果它抛出异常?
问题描述:
我是新来的蟒蛇我现在正在学习异常处理。为什么try语句在第一个语句后退出,如果它抛出异常?
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立即停止执行。您可以通过使用try
和except
来阻止完整的程序停止。但是,如果在try
块中发生异常,它将仍然停止执行,并且只有在适当的except
块捕获到异常(或存在finally
块)时才会继续执行。
总之:如果你想继续下一个陈述,你需要使用单独的try
和except
块。但是如果你想执行下面的语句只有如果前面的语句没有提出异常,你不应该使用单独的try
和except
块。
答
是的,你需要有单独的异常块,因为如果它得到通过的第一个块,它认为多数民众赞成它需要获得通过,因此,如果你想测试每个人,你应该使用单独的
答
你必须使用多个try/except块。
一旦发现错误,发生的任何事情都会停止,并处理异常。
认为这是一场火灾。当发生火灾时,你会停止并消失。对于python,它处理异常
如果你想继续使用你的代码,你应该这样做。在许多情况下,它是没有意义的,因为每行代码都依赖于上面的行。例如,如果我有一个打开文件的异常,那么尝试从中读取文件是没有意义的。 – ivo