# -*- coding: utf-8 -*- import json import logging from functools import wraps from odoo.exceptions import AccessDenied, UserError, ValidationError _logger = logging.getLogger(__name__) def exception_handle(func): @wraps(func) def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except (AccessDenied, UserError, ValidationError) as e: _logger.info(str(e)) return json.dumps({'data': '', 'code': 500, 'message': str(e)}) except Exception as e: _logger.exception(e) return json.dumps({'data': '', 'code': 500, 'message': str(e)}) return wrapper