import sys
import functools

level = 0

def obrabotka_osheebki(cb):
    global level
    @functools.wraps(cb)
    def wrapper(*args, **kwargs):
        try:
            cb(*args, **kwargs)
        except Exception as e:
            raise type(e)(str(e) + ' обработки ошибки')
    level += 1
    return obrabotka_osheebki(wrapper) if level < sys.getrecursionlimit() / 2 - 3 else wrapper


@obrabotka_osheebki
def main():
    raise RuntimeError('Ошибка')


if __name__ == '__main__':
    main()
