Python 金字塔忽略自定义异常
我想我在使用金字塔和处理自定义错误代码/异常时可能会遇到问题 在后端应用程序中,我提出了一个Python 金字塔忽略自定义异常,python,pyramid,Python,Pyramid,我想我在使用金字塔和处理自定义错误代码/异常时可能会遇到问题 在后端应用程序中,我提出了一个errareCatalog.errExtapiFulfillIdDeprecated当特定事件发生时,我认为这并不重要,但以下是我在errareCatalog.py中提出的: class errExtapiFulfillIdDeprecated(errare.processingErrare): e_mnemonic = 'ERR_FULFILL_ID_DEPRECATED' e_baseMsg
errareCatalog.errExtapiFulfillIdDeprecated
当特定事件发生时,我认为这并不重要,但以下是我在errareCatalog.py
中提出的:
class errExtapiFulfillIdDeprecated(errare.processingErrare):
e_mnemonic = 'ERR_FULFILL_ID_DEPRECATED'
e_baseMsg = gettext('Fulfill id is deprecated')
e_errCatalogNumber = -21008
我试图通过以下方式在前端部分捕获此异常:
from pyramid.httpexceptions import HTTPNotFound
from hll.errors import errareCatalog
try :
stuff that raise and exception
except errareCatalog.errExtapiFulfillIdDeprecated as ex :
request.response.status_code = 404
print 'throwin 404'
return HTTPNotFound()
问题是,我似乎从来没有进入过这个领域,除了。某个地方抛出了一个500错误,并将我重定向到500页。
我引发/捕获异常的方式是否有问题,或者金字塔中是否缺少配置
编辑:这是我的异常视图
@view_config(context=errareCatalog.errExtapiFulfillIdDeprecated, permission=NO_PERMISSION_REQUIRED)
def mobile_ticket_error(exc, request):
print 'test error'
logger.exception("DEPRECATED FULFILLID: %s" % str(exc))
return render_to_response("mylogin:templates/mobile-ticket-error.genshi",
{'message': str(exc),
'layout_name': get_layout_name(request)},
request=request)
为什么不删除
try
块并检查实际抛出的异常情况?@brianpck如何执行try:except
块而不进行尝试?只需同时删除这两个块,然后就不会捕获异常(我假设这不是生产问题)我仍然被重定向到自定义的500错误页面,我已经编辑了我的问题,以包含我在errextapifulidadepreprecated
context中使用的视图。您的代码中可能有一个不相关的错误,例如缺少导入等,这会导致您的自定义异常永远不会出现。检查应用程序的控制台输出或日志。为什么不删除try
块并检查实际引发的异常?@brianpck如何执行try:除了没有try的块?只需删除这两个块,然后不捕获异常(我假设这不是生产问题)我仍然被重定向到我的自定义500错误页面,我已经编辑了我的问题,以包括我在errextapifulidateddeprecated
context中使用的视图。您的代码中可能有一个不相关的错误-例如缺少导入等,这会导致您的自定义异常永远不会被引发。检查应用程序的控制台输出或日志。