1

我想知道在引发异常值时如何返回到我的页面(并因此编写它)。例如现在我正在这样做:

try:
    user.save()
except:
    err_msg="An error verified during user adding process. Please repeate the procedure"
return render_to_response('staff.html', {'m':m, 'err_msg':err_msg})

我想对用户更清楚,并告诉他引发了什么错误。

4

2 回答 2

0

您不应该向用户显示实际的错误消息。这在安全性方面很糟糕。你刚刚做的很好。但是您应该通过打印实际错误消息来找出失败的原因以进行调试:

try:
    user.save()
except Exception, e:
    print e.message # print actual error message and figure out what went wrong
    err_msg="An error verified during user adding process. Please repeate the procedure"
return render_to_response('staff.html', {'m':m, 'err_msg':err_msg})
于 2013-01-13T15:21:17.177 回答
0

如果您要问,如何捕获错误消息的文本,只需捕获并打印它:

try:
   '2' + 2
except TypeError as e:
   print '{}'.format(e)

您也可以print e.message,但尝试直接打印会更安全。

如果您不知道会引发什么异常,您可以使用通用的 except 子句,然后执行以下操作:

import sys

try:
   '2' + 2
except:
    print sys.exc_info()[1].message

但是,通用的 except 子句不是好的编程习惯。明确地捕获异常总是好的。

于 2013-01-13T15:21:40.717 回答