在 Django 中使用 try except 进行错误处理
Error handling using try except in Django
我正在尝试输入一个值作为查询。为了处理错误,我使用了 try except 方法。但是当我输入无效条目时我仍然收到错误消息:车队匹配查询不存在。
我希望在模板上打印错误消息。难道我做错了什么?这是我的代码:
def entry(request):
query = request.GET.get("q")
if query:
query = query.replace(" ","")
result = Fleet.objects.get(veh = query)
try:
trip = Trip.objects.filter(veh = result).first()
.
.
.
except (Fleet.DoesNotExist):
EntryTable.objects.create(veh = query, in_time = datetime.now(), purpose = 'New vehicle')
return render(request, 'fleet/msfleet.html', {'error_message': 'New vehicle entry noted'})
else:
return render(request, 'fleet/msfleet.html', {'error_message': 'Enter a vehicle number'})
仔细查看堆栈跟踪。报错的是这一行
result = Fleet.objects.get(veh = query)
但是,这一行不在 try
块内,因此没有捕获异常。附带说明一下,您不需要 try
中的任何其他行,只需要可以引发异常的行。您可以从 except
部分中选择 return,并将所有其他代码移到 try/except 之后,或者将 else
部分与 try/except.[=15= 一起使用]
我正在尝试输入一个值作为查询。为了处理错误,我使用了 try except 方法。但是当我输入无效条目时我仍然收到错误消息:车队匹配查询不存在。 我希望在模板上打印错误消息。难道我做错了什么?这是我的代码:
def entry(request):
query = request.GET.get("q")
if query:
query = query.replace(" ","")
result = Fleet.objects.get(veh = query)
try:
trip = Trip.objects.filter(veh = result).first()
.
.
.
except (Fleet.DoesNotExist):
EntryTable.objects.create(veh = query, in_time = datetime.now(), purpose = 'New vehicle')
return render(request, 'fleet/msfleet.html', {'error_message': 'New vehicle entry noted'})
else:
return render(request, 'fleet/msfleet.html', {'error_message': 'Enter a vehicle number'})
仔细查看堆栈跟踪。报错的是这一行
result = Fleet.objects.get(veh = query)
但是,这一行不在 try
块内,因此没有捕获异常。附带说明一下,您不需要 try
中的任何其他行,只需要可以引发异常的行。您可以从 except
部分中选择 return,并将所有其他代码移到 try/except 之后,或者将 else
部分与 try/except.[=15= 一起使用]