即使语法错误,也保持simpleserver活动

时间:2012-08-06 17:36:31

标签: python flask wsgi werkzeug

有没有办法配置Flask使用的简单服务器退出每个语法错误?

app = Flask(__name__)
app.run(host='0.0.0.0', debug=True, use_debugger=True, passthrough_errors=False);

目前我正在为简单服务器使用此设置。 将passthrough_errors设置为False意味着大多数错误实际上使进程保持活动状态,以便我可以使用交互式调试器,但语法错误仍然会退出程序。我尝试了不同的配置值,但我没有找到任何有效的配置。谢谢!

1 个答案:

答案 0 :(得分:3)

根据Python文档,有两种类型或错误:

  1. 语法错误
  2. 例外
  3. 语法错误是在解析时期间产生的(此时您的代码实际执行,因此您无法捕获错误,因为解析时间不是运行时,代码实际执行时。)

    你可以捕获语法错误的唯一方法是它们发生在作为 exec 函数的参数给出的代码段内(执行python代码字符串):

    >>> try:
    ...     exec('x===6')
    ... except SyntaxError:
    ...     print('Hello!')
    ...
    Hello!
    

    但是你必须记住只有当你真正知道你做了什么时才使用exec()。不建议使用exec(),特别是当它取决于用户输入时。