【发布时间】:2015-03-25 02:18:04
【问题描述】:
我在 python Pyramid 中有一个 Web 应用程序,它调用 python 中可能引发异常的各种其他代码。 我不希望用户收到“500 内部错误”,而是希望他们获得更具体的错误,例如如果抛出 MyException,则显示 503 错误。我试图这样做:
@view_config(context=MyException, permission='view')
def custom_exc(exc, request):
raise HTTPServiceUnavailable(exc.message)
但是,由于某种原因未经授权,因此失败了:
HTTPForbidden: Unauthorized: custom_exc failed permission check
我的 ACL 如下:
class RootFactory(object):
__acl__ = [
(Allow, 'admin', ('view',))
]
我与用户 admin 建立了联系,它适用于其他视图。
有谁知道如何解决这个问题,或者如何以不同的方式在 Pyramid 中“链接”异常?
【问题讨论】:
-
你看过 Pyramid 的exception views 吗?我已经使用它们来捕获和返回特定错误,尽管我在这样做时没有遇到授权错误。