You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
644 B
32 lines
644 B
# coding:utf-8
|
|
from copy import deepcopy
|
|
|
|
|
|
|
|
def exceptionHandler(*default):
|
|
""" decorator for exception handling
|
|
|
|
Parameters
|
|
----------
|
|
*default:
|
|
the default value returned when an exception occurs
|
|
"""
|
|
|
|
def outer(func):
|
|
|
|
def inner(*args, **kwargs):
|
|
try:
|
|
return func(*args, **kwargs)
|
|
except BaseException as e:
|
|
value = deepcopy(default)
|
|
if len(value) == 0:
|
|
return None
|
|
elif len(value) == 1:
|
|
return value[0]
|
|
|
|
return value
|
|
|
|
return inner
|
|
|
|
return outer
|