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中使用的视图。您的代码中可能有一个不相关的错误-例如缺少导入等,这会导致您的自定义异常永远不会被引发。检查应用程序的控制台输出或日志。