Получить аргументы вызова последней функции из traceback?

Могу ли я получить параметры последней функции, вызванной в traceback? Как?

Я хочу сделать ловушку для стандартных ошибок, чтобы сделать читаемый код, но предоставить подробную информацию для пользователя.

В следующем примере я хочу, чтобы GET_PARAMS возвращал мне набор параметров, предоставленных os.chown. Изучениеinspect модуль по совету Алекса Мартелли, я не мог найти это.

def catch_errors(fn):
    def decorator(*args, **kwargs):
        try:
            return fn(*args, **kwargs)
        except (IOError, OSError):
            msg = sys.exc_info()[2].tb_frame.f_locals['error_message']
            quit(msg.format(SEQUENCE_OF_PARAMETERS_OF_THE_LAST_FUNCTION_CALLED)\
            + '\nError #{0[0]}: {0[1]}'.format(sys.exc_info()[1].args), 1)
    return decorator

@catch_errors
def do_your_job():
    error_message = 'Can\'t change folder ownership \'{0}\' (uid:{1}, gid:{2})'
    os.chown('/root', 1000, 1000) # note that params aren't named vars.

if __name == '__main__' and os.getenv('USERNAME') != 'root':
    do_your_job()

(БлагодаряДжим роберт для декоратора)

Ответы на вопрос(3)

Ваш ответ на вопрос