| import sys |
| import traceback |
| from functools import wraps |
| from exception import MyException |
|
|
| def asyncHandler(fn): |
| @wraps(fn) |
| async def decorator(*args, **kwargs): |
| try: |
| return await fn(*args, **kwargs) |
| except Exception as e: |
| |
| tb = traceback.extract_tb(sys.exc_info()[2]) |
| |
| filtered_tb = [frame for frame in tb if "asyncHandler.py" not in frame.filename] |
| |
| error_msg = f"{e}\n[Error Trace]: " + " -> ".join([f"{frame.filename}:at Line_NO:{frame.lineno}" for frame in filtered_tb]) |
| raise MyException(Exception(error_msg), sys) |
| return decorator |