11

私はこのビュー機能を持っています:

def forum(request):
qs = Forum.objects.all()
try:
    f = Forum.objects.filter().order_by('-id')[0] <------------problem
    return render_to_response("forum.html",{'qs':qs,'f':f},context_instance=RequestContext(request))
except Forum.DoesNotExist or IndexError:
    return render_to_response("forum.html",{'qs':qs},context_instance=RequestContext(request))

ただし、上記の問題行に対して次のエラーが引き続き発生します。

IndexError: list index out of range

私のコードは大丈夫ですか?この方法で複数の例外をキャッチできますか?

4

3 に答える 3

14

この方法で複数の例外をキャッチできます

try:
    ...
except (Forum.DoesNotExist, IndexError) as e:
   ...
于 2013-05-26T00:04:07.807 に答える
5

各例外をログに記録/処理する場合は、次のようにすることができます。

from django.core.exceptions import ObjectDoesNotExist

try:
    your code here
except KeyError:
    logger.error('You have key error')
except ObjectDoesNotExist:
    logger.error('Object does not exist error')
于 2018-05-17T04:23:08.067 に答える