Как решить эту проблему поймать обработку исключений? - PullRequest
0 голосов
/ 27 июня 2019

Я работаю над задачей, и я только что испортил эту обработку исключений.

У меня есть метод voidTransaction, в котором есть попытка catch. В разделе catch набор значений, установленный для объекта TransactionResponse (переменная voidResponse). Так что этот метод вызывается другим методом с новым try catch. я хочу получить доступ к voidResponse и получить результат.

public TransactionResponse voidTransaction(PaymentInstrument _paymentInstrument, ServiceContext serviceContext) {
     ...................
     try {
            ResponseEntity<TransactionResponse> responseEntity = restTemplate.exchange(uri, HttpMethod.PUT, requestEntity, TransactionResponse.class);
            voidResponse = responseEntity.getBody();
            log.info(LogSupport.PG_LOGS_CARGILLS_VOID_TRX + "[AcquirerMID ={};TransactionId ={};ResponseCode={};ResponseText={}]", _paymentInstrument.getAcquirerMid(), 
                    _paymentInstrument.getTransactionId(), voidResponse.getResponse().getAcquirerCode(), voidResponse.getResponse().getAcquirerMessage());
        }catch (Exception exception){
            if(exception instanceof ResourceAccessException){
                log.error(LogSupport.PG_LOGS_CARGILLS_VOID_TRX+" Exception: {}", exception.getMessage());
            }
            log.error(LogSupport.PG_LOGS_CARGILLS_VOID_TRX+" Exception :{} ", exception.getMessage());
            voidResponse = new TransactionResponse();
            voidResponse.setResult("ERROR");
            ErrorResponse error = new ErrorResponse();
            error.setCause("EXCEPTION");
            error.setExplanation(exception.getMessage());
            voidResponse.setError(error);

        }
 }

public Response VOid(){
     try {
            transactionResponse = cargillsIpgProxy.voidTransaction(paymentInstrument,serviceContext);
            log.info(LogSupport.OTC_VOID_TRANSACTION + "[|CustomerId:{}|TransactionId:{}|{}|Transaction response:{}]",
                axiPayCargills.getCustomerId(), axiPayCargills.getCustomerPayeeTransactionId(), uniqueUUID, transactionResponse.toString());
          } catch (Exception exception) {
            log.info(LogSupport.OTC_VOID_TRANSACTION + "[|CustomerId:{}|TransactionId:{}|{}|Void error:{}]",
                axiPayCargills.getCustomerId(), axiPayCargills.getCustomerPayeeTransactionId(), uniqueUUID, exception.getMessage());
// Here i want to return above method setted result value

          }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...