Skip to content

Commit 832c727

Browse files
committed
Allow to pass an error_callback for the GracefulResourceRenderer.
This allows to run some code in an error case, e.g. to add a user-visible status message.
1 parent 40a5aaa commit 832c727

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

CHANGES.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,11 @@ Changelog
44
1.3 (unreleased)
55
----------------
66

7+
- Allow to pass an error_callback for the GracefulResourceRenderer.
8+
This allows to run some code in an error case, e.g. to add a user-visible
9+
status message.
10+
[thet]
11+
712
- Also handle resource resolver errors gracefully in the GracefulResourceRenderer.
813
[thet]
914

webresource/_api.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -738,7 +738,7 @@ def render(self):
738738
class GracefulResourceRenderer(ResourceRenderer):
739739
"""Resource renderer, which does not fail but logs an exception."""
740740

741-
def render(self):
741+
def render(self, error_callback=None):
742742
lines = []
743743
resources = []
744744
try:
@@ -750,6 +750,8 @@ def render(self):
750750
) as e:
751751
error_message = str(e)
752752
logger.exception(error_message)
753+
if error_callback:
754+
error_callback(error_message)
753755

754756
for resource in resources:
755757
error_message = None
@@ -767,4 +769,6 @@ def render(self):
767769
error_message
768770
))
769771
logger.exception(error_message)
772+
if error_callback:
773+
error_callback(error_message)
770774
return u'\n'.join(lines)

0 commit comments

Comments
 (0)