Just like the unstable try block, this macro runs the code inside of it, but in a context
where returns return from it instead of the top function, acting like a try-catch in a
traditional language. This is done by immediately calling a closure.
This trait is a generalization of Default::default. The difference is that some types may
provide a constructor with no arguments, but not implement Default for some reason. That
might be that it’s expensive to create, or mutates some global state, or does some IO, etc.