bugfix> python > 投稿

私は OperationalError を持っていますビューのレンダリング中にスローされる例外。

だから私は views.py でレンダリングする前にそれをキャッチしようとしました

try:
    dossiersdb = Person.objects.using('dbn').all()
    print(dossiersdb)
except OperationalError as exp :
    logger.warning("Got %s", exp) 
    return HttpResponse('<h1>OperationalError</h1>')

しかし、 print(dossiersdb) を追加する必要がありますそれなしでは、例外はありませんが、index.html

この例外をキャッチする適切な方法は何ですか?

回答 2 件
  • list() を使用できます  クエリセットを強制的に評価します。

    try:
      dossiersdb = list(Person.objects.using('dbn').all())
    except OperationalError as exp :
      logger.warning("Got %s", exp) 
      return HttpResponse('<h1>OperationalError</h1>')
    
    

  • グローバル例外フックはどうですか?

    def exception_hook(exctype, value, trace):
        # some exception handling logic here.
        sys.__excepthook__(exctype, value, trace)
    sys.excepthook = exception_hook
    
    

あなたの答え