31 lines
865 B
Python
31 lines
865 B
Python
# pylint: disable=missing-module-docstring,missing-function-docstring,missing-class-docstring
|
|
from backend import LrcException
|
|
|
|
|
|
def exception_decorator(*exceptions):
|
|
"""
|
|
A decorator that catches specified exceptions and raises them as LrcExceptions.
|
|
|
|
Args:
|
|
*exceptions: A variable-length argument list of exceptions to catch.
|
|
|
|
Returns:
|
|
A decorator function that can be applied to other functions.
|
|
|
|
Example:
|
|
@exception_decorator(ValueError, TypeError)
|
|
def my_function():
|
|
# code here
|
|
"""
|
|
def decorator(func):
|
|
def new_func(*args, **kwargs):
|
|
try:
|
|
ret = func(*args, **kwargs)
|
|
return ret
|
|
except exceptions as e:
|
|
raise LrcException(e) from e
|
|
|
|
return new_func
|
|
|
|
return decorator
|