Python指令外部尝试:除了:
我在Try/Except块内有一行,但当出现异常时,将执行该块外的另一行。我在打电话,所以我只需要输入几行Python指令外部尝试:除了:,python,try-catch,Python,Try Catch,我在Try/Except块内有一行,但当出现异常时,将执行该块外的另一行。我在打电话,所以我只需要输入几行 try: total=total+int(number) except: print('Bad input') count = count + 1 当我输入一个数字时,计数按预期递增。如果输入字符,则会捕获异常,但计数仍会增加。我认为如果出现异常,只有try/except块中的行才会重复。如果只想在未引发异常的情况下增加计数,则需要使用try/except语句的else子
try:
total=total+int(number)
except:
print('Bad input')
count = count + 1
当我输入一个数字时,计数按预期递增。如果输入字符,则会捕获异常,但计数仍会增加。我认为如果出现异常,只有try/except块中的行才会重复。如果只想在未引发异常的情况下增加
计数,则需要使用try/except
语句的else
子句:
试一试。。。except语句有一个可选的else子句,当它出现时,必须在所有except子句之后。如果try子句没有引发异常,那么它对于必须执行的代码非常有用
从上面可以看到,我更改了bare except语句以捕获特定的异常类型ValueError
,因为如果不能将其参数转换为int
,将引发该异常类型。如果要捕获不同的异常,请更改ValueError
,但不要使用裸露的except
子句,因为它可以掩盖重要的异常
同样如注释中所述,try/except
语句不会多次执行其主体。如果需要这种行为,则需要一个循环。当您输入字符并引发异常时。行count=count+1
仍然会被执行。因为count=count+1
不在else:
下,所以计数仍然会增加。
另外,要意识到try-except语句不会重复 Try except语句不会自动重复任何内容。如果你有一个while
循环围绕着这个或什么,你的while
循环将重复整个循环体。谢谢。我错误地认为try/except本身就像一个循环。新手犯的错误。这包含在while循环中,但我不想在手机上键入它。我不知道还有别的选择,谢谢。当我输入代码时,我发现我的原始帖子格式不正确。输入代码和保持缩进的正确步骤是什么?@Ali突出显示您希望缩进的所有代码。然后按编辑标题中的{}
按钮,或使用快捷键ctrl+k
。
try:
total += int(number)
except ValueError:
print('Bad input')
else:
count += 1