|
@@ -80,7 +80,7 @@ async def error_sink(ex: Exception, tn: str, data: list, session_id):
|
|
|
pass
|
|
|
|
|
|
|
|
|
-def _handle(data, tn, session_id, ex: Exception):
|
|
|
+def _handle(data, tn, session_id, ex: Exception, original_data):
|
|
|
content_type = 0
|
|
|
if not isinstance(data, list):
|
|
|
data = [data]
|
|
@@ -100,6 +100,7 @@ def _handle(data, tn, session_id, ex: Exception):
|
|
|
ex=ex,
|
|
|
content_type=content_type,
|
|
|
tn=tn
|
|
|
+ ,original_data=original_data
|
|
|
)
|
|
|
else:
|
|
|
error(data=data,
|
|
@@ -107,6 +108,7 @@ def _handle(data, tn, session_id, ex: Exception):
|
|
|
ex=ex,
|
|
|
content_type=content_type,
|
|
|
tn=tn
|
|
|
+ , original_data=original_data
|
|
|
)
|
|
|
pass
|
|
|
pass
|
|
@@ -117,23 +119,24 @@ def exception_handle(func):
|
|
|
# tn = pascal_case_to_snake_case(self.__class__.__name__)
|
|
|
tn = self._name
|
|
|
session_id = args[1]
|
|
|
+ original_data = args[2]
|
|
|
result = None
|
|
|
try:
|
|
|
result = await func(self, *args, **kwargs)
|
|
|
except RulerValidationException as ex:
|
|
|
log.warn("session: %s 维度:%s ,detail: %s", session_id, tn, ex)
|
|
|
data = args[0]
|
|
|
- _handle(data, tn, session_id, ex)
|
|
|
+ _handle(data, tn, session_id, ex, original_data)
|
|
|
await ruler_valid_exception_sink(ex, tn, data, session_id)
|
|
|
except FetchException as ex:
|
|
|
log.error("session: %s 维度:%s ,detail: %s", session_id, tn, ex)
|
|
|
data = args[0]
|
|
|
- _handle(data, tn, session_id, ex)
|
|
|
+ _handle(data, tn, session_id, ex, original_data)
|
|
|
await fetch_exception_sink(ex, tn, data, session_id)
|
|
|
except Exception as ex:
|
|
|
log.error("session: %s 维度:%s ,出现未知异常:%s", session_id, tn, repr(ex))
|
|
|
data = args[0]
|
|
|
- _handle(data, tn, session_id, ex)
|
|
|
+ _handle(data, tn, session_id, ex, original_data)
|
|
|
await error_sink(ex, tn, data, session_id)
|
|
|
|
|
|
return result
|