Вы можете сделать это, просто избавившись от исключения StandardError
, вот так:
class Foo
attr_reader :value
def initialize(value)
@value = value
end
end
begin
foo = Foo.new
rescue StandardError => e
raise e.class.new(e.message.truncate(150, omission: ''))
end
Хотя, таким образом, вы реинициализируете другой объект того же класса здесь с новым / измененным сообщением.
Редактировать: Алексей сделал хорошую точку зрения на арность, поскольку настраиваемые классы ошибок / исключений сделаны по-разному, чтобы иметь детальный контроль над исключениями, которые полезны при отладке.Убедитесь, что у вас есть правильная сила, иначе вы будете на охоте на гусей, а не на решение реальной проблемы.