I've created a ticket for that but didn't get any feedback so I decided 
to try asking in another way:

https://bugs.ruby-lang.org/issues/10110

I'd like to understand what is Exception#cause and what exactly does the 
third parameter of Kernel#raise.

I've seen a code calling raise exception_instance, message rather than 
passing the exception class and the cause for the handled exception was 
a string rather than an Exception. I don't even know if this is a bug 
and if raise should fail if you pass an exception instance with a 
message as I don't really understand how exception handling works in 
Ruby and what to expect for Exception#cause and how to properly wrap an 
exception for logging purposes...

If you could at least explain what Exception#cause is supposed to carry 
on and what the third argument of Kernel#raise does exactly by the specs 
I'd be a lot grateful.

Thanks in advance,
Rodrigo.