A composale way to run finalizers in the face of errors