And on top of that, you could make it return `VALUE`, where `VALUE` is `Qnil` or an Exception object that can be raised on the calling function to prevent leaks.