Ales Justin wrote:
Consider this:deploy()
{
doMyWork();
callThirdPartyCodeWhichCanEndUpThrowingThrowableOrRunTimeException();
}
Surely, my deployer/visitor isn't expected to catch Throwable and cleanup whatever I did in doMyWork(), or is it?
Sure it is.
How on earth should I know what a "revert-doMyWork()" looks like? ;-)
You need not know that logic :) All that I expect is a undeploy() call on my visitor which failed during deploy. And my visitor's undeploy() will have the knowledge of revert-doMyWork();