You can use Pyramid
's events
system :
@subscriber('pyramid.events.NewRequest')
def newrequest(event):
request = event.request
if request.remote_addr.startswith('66.'):
raise SomeException('my custom message')
@view_config(context=SomeException, renderer='string')
def exc_view(exc, request):
return exc.message