У меня есть одна вещь, которую я знаю, а другая - просто дикая догадка.
Я знаю, что вам не нужно вызывать to_s
для общего выражения #{}
; это произойдет автоматически. Но это не вредит.
Мое странное предположение, что ваш тестовый пример не выполняет код, который вы опубликовали. Что произойдет, если вы измените e
на f
?
Я должен отметить, что спасение самого Exception обычно является плохой идеей. Вы должны спасти RuntimeError или StandardError на самом высоком уровне, и желательно что-то более конкретное. При спасении Exception вы можете получить довольно странные ошибки, поскольку вы вмешиваетесь в потоки и события уровня интерпретатора.