Unfortunately, Puppet does rescue Exception in a number of places which is a design flaw that we're trying to clean up. It's been problematic because blindly rescuing all errors can lead to undefined or unpredictable behavior.

In this case if we rescue `ENOMEM` and try to log it, the act of logging could trigger another `ENOMEM`. That's the general problem with rescuing `Exception` - you may rescue an exception that can't be handled, and trying to do _anything_ else can cause more failures in other places.

In short I would rather have us figure out what exactly we need to rescue and only rescue those exceptions, rather than take the easiest way out and repeat a bad pattern.