[英]How do I catch all of these exceptions in python?
我正在制作一个python程序,它接受用户输入并使用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
为什么是这样? 这不是排除的正确语法吗?
使用*
的语法仅在导入中使用。 您想将Exception as e
,然后在以后将e
用作错误消息。
正确的语法为:
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
...
可以使用except Exception as e
,而不要使用except * as e
,而不是将except Exception as e
,因为*
不能与之相关联,除非在导入中。 但是,我建议您try: ... except: ...
不要try: ... except: ...
尽可能少,因此请从尝试中删除raw_input()
,除非您也确实希望将其包围。
您遇到语法错误,而不是代码中的异常。 捕获所有异常的正确语法是
try:
<your code>
except Exception as e:
print e
“异常”是异常层次结构的根,因此它捕获所有程序(但不是系统)错误。 请参阅python教程的第8节:错误和异常 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.