Код: Выделить всё
void handle() {
service1.create();
callService2OrRollback();
callService3OrRollback()
}
void callService2OrRollback() {
try {
service2.create();
} catch(Exception e) {
service1.delete();
throw e;
}
}
void callService3OrRollback() {
try {
service3.create();
} catch(Exception e) {
service1.delete();
service2.delete();
throw e;
}
}
Подробнее здесь: https://stackoverflow.com/questions/781 ... y-services