我刚试过写这个:
try:
# do something
except ValueError, IndexError:
# do something else
Run Code Online (Sandbox Code Playgroud)
当我的程序仍然扔了一个IndexError因为我以为我正在捕捉它时,我感到非常困惑.
如果它没有捕获IndexError,这个代码到底是做什么的?它似乎不是语法错误.
因为这个错误/问题很常见,所以Python3的语法会发生变化.你的代码相当于
try:
# do something
except (ValueError, ) as IndexError:
# do something else
Run Code Online (Sandbox Code Playgroud)
你会看到这显然是错误的.
新语法可以回溯到Python2.6
这没问题
try:
# do something
except (ValueError, IndexError):
# do something else
Run Code Online (Sandbox Code Playgroud)
但通常你想要做一些例外,所以你可以写
try:
# do something
except (ValueError, IndexError) as e:
# do something with e
Run Code Online (Sandbox Code Playgroud)