void (@NotNull Throwable error) { if (error instanceof PushController.HandlerException handlerException) { Throwable cause = handlerException.getCause(); String failedHandler = handlerException.getFailedHandlerName(); List<String> skippedHandlers = handlerException.getSkippedHandlers(); @Nls String suggestionMessageProblem; if (cause instanceof ProcessCanceledException) { suggestionMessageProblem = DvcsBundle.message("push.dialog.push.cancelled.message", failedHandler); } else { super.onThrowable(cause); suggestionMessageProblem = DvcsBundle.message("push.dialog.push.failed.message", failedHandler); } @Nls String suggestionMessageQuestion = skippedHandlers.isEmpty() ? DvcsBundle.message("push.dialog.push.anyway.confirmation") : DvcsBundle.message("push.dialog.skip.all.remaining.steps.confirmation"); suggestToSkipOrPush(suggestionMessageProblem + "\n" + suggestionMessageQuestion); } else { super.onThrowable(error); } }