Асинхронный код и проверенные исключения не работают вместе. Кроме того, поскольку дочерний рабочий процесс и вызовы действий являются технически удаленными вызовами методов, исключения, которые генерируются в вызывающей стороне, обычно не совпадают с исходными исключениями.
Таким образом, принятое решение - никогда не использовать проверенные исключения в методе действия и рабочего процесса подписи.
Чтобы избежать ненужного переноса, вы можете использовать методы Activity.wrap и Workflow.wrap для повторной генерации отмеченного исключения. Он собирается заключить его во внутреннее исключение CheckedExceptionWrapper, которое будет автоматически развернуто у вызывающей стороны.
try {
return someCall();
} catch (Exception e) {
throw Activity.wrap(e);
}