Вот ситуация. Я хочу, чтобы все исключения в doStuff() выливались через код, чтобы они обрабатывались на более высоком уровне.
Я также хотел бы записать, как часто любые исключения выполняются в doStuff() на более высоком уровне, и я в настоящее время делаю это:
begin
doStuff()
rescue Exception =>
raise e, "specific error to log in a db"
Код doStuff генерирует десятки исключений, и я хочу зафиксировать каждое из этих событий, чтобы положить в db. Существует doStuff2(), который также может передавать идентичные инструкции, и я хочу знать, из какой функции они пришли.
Добавление дополнительной строки, кажется, изменяет само исключение, и я теряю все хорошие данные о форматировании и трассировке, которые были в исходном исключении.
Любые предложения о том, как я могу сделать ререйз оригинального исключения, но также отслеживать все исключения, которые происходят в doStuff()?