如何在python中捕获所有这些异常?
我正在制作一个python程序,它接受用户输入并使用如何在python中捕获所有这些异常?,python,exception,python-2.7,try-catch,Python,Exception,Python 2.7,Try Catch,我正在制作一个python程序,它接受用户输入并使用exec()执行它。以下是我目前的代码: >>> while True: ... var = raw_input('Enter the code: ') ... exec(var) ... 这部分是有效的。但是,我希望在用户输入引起错误的输入时捕获,但我也希望打印错误。这就是我所做的: >>> while True: ... try: ... var = ra
exec()
执行它。以下是我目前的代码:
>>> while True:
... var = raw_input('Enter the code: ')
... exec(var)
...
这部分是有效的。但是,我希望在用户输入引起错误的输入时捕获,但我也希望打印错误。这就是我所做的:
>>> while True:
... try:
... var = raw_input('Enter the code: ')
... exec(var)
... except * as e:
... print e
...
这就产生了自己的错误:
File "<stdin>", line 4
except * as e:
^
SyntaxError: invalid syntax
文件“”,第4行
除*外,作为e:
^
SyntaxError:无效语法
为什么会这样?这不是例外的正确语法吗?正确的语法应该是:
try:
# some code
except Exception as e:
print e
这不是正确的语法,以下是您编辑的代码:
>>> while True:
... try:
... var = raw_input('Enter the code: ')
... exec(var)
... except Exception as e:
... print e
...
使用
Exception as e
,而不是Exception*as e
,因为*
除了在导入中之外,没有与之关联的值。但是,我建议您保留try:。。。除了:…
尽可能少,所以从try中删除raw\u input()
,除非您真的想围绕它。您遇到了语法错误,代码中没有异常。捕获所有异常的正确语法是
try:
<your code>
except Exception as e:
print e
试试看:
例外情况除外,如e:
打印e
“异常”是异常层次结构的根,因此它捕获所有程序(但不是系统)错误。请参见python教程的第1部分 使用
*
的语法仅在导入中使用。您想使用异常作为e,然后稍后调用异常作为错误消息。您从哪里知道这是有效的语法?