Python django中视图语法错误与异常的处理

Python django中视图语法错误与异常的处理,python,django,exception,view,Python,Django,Exception,View,我正在使用django 1.2.7和python 2.6。 如果我使用此代码:(在porpuse上有一个识别错误) 那我就得不到回应了。我收到了django 500的回复 但如果我将代码更改为: def myview(request): try: if x: print 'x' except: return HttpResponseServerError('bazinga') 现在我有了我自己的500,写了bazing

我正在使用django 1.2.7和python 2.6。 如果我使用此代码:(在porpuse上有一个识别错误

那我就得不到回应了。我收到了django 500的回复

但如果我将代码更改为:

  def myview(request):
    try:
        if x:
            print 'x'
    except:
        return HttpResponseServerError('bazinga')
现在我有了我自己的500,写了bazinga

如何捕获第一个示例中的标识错误


正如我的try-except-catch在第二个示例中的异常一样。

可以很容易地检测到语法错误,因为您不需要运行代码,只需要导入代码即可

你没有理由试图抓住它们,只是修复它们

您可以捕获代码中的语法(和缩进)错误。 查看此处了解更多信息:
如果出现语法错误,不要试图让Django返回一个好的响应。这将是很困难的,并且需要为这种情况拥有自己的代码,并且代码本身需要是无错误的,等等


相反,将这项工作放到一个自动化测试套件中,这样在部署代码之前就可以很容易地找到这些错误。

语法错误不是运行时错误,而是在编译时发生的。据我所知,你不能用try/except块捕获它们。

我想捕获它们,因为我想能够控制响应,以防代码中出现错误。@yossi我想说的是,这不值得付出努力。我非常理解您的目标。根据您的编辑器/IDE,您可以安装后台linter,在运行时扫描代码中的小错误。
  def myview(request):
    try:
        if x:
            print 'x'
    except:
        return HttpResponseServerError('bazinga')