Как передать значения Dynami c в исключение через файл свойств - PullRequest
0 голосов
/ 09 июля 2020

Как передать динамические c значения в исключении из файла свойств

  1. Класс ресурса
if ((Double.parseDouble(orderRequest.getTriggerPrice()) < sLowerLimit)
                        || (Double.parseDouble(orderRequest.getTriggerPrice()) > sHigherLimit)) {

                    throw new SampleException(SampleConstants.CO_TRIGGER_PRICE_RANGE_ERROR);
                }
Класс SampleConstant
public static final String CO_TRIGGER_PRICE_RANGE_ERROR = "EPO0009";
файл свойств
EPO0009=Price value not within Trigger price range

класс сопоставления исключений

 if (errorCode.length() < 8) {
     errorMsg = env.getProperty(errorCode);

 } else {
     errorMsg = simpleException.getMessage();
     log.debug("error code is not passed. errorcode: " + errorCode + "errorMsg" + errorMsg);
     errorMsg =env.getProperty(DEFAULT_ERR_MSG);
 }

 log.debug("retrived from properties" + errorMsg);

// simpleExceptionResponse.setMessage (StringUtils.isEmpty (simpleException.getMessage ())? "": SimpleException.getMessage ()) ; simpleExceptionResponse.setStatus (SimpleConstants.FAILURE); simpleExceptionResponse.setErrorCode (errorCode); simpleExceptionResponse.setStatusMessage (StringUtils.isEmpty (errorMsg)? "": errorMsg); simpleExceptionResponse.setMsgId (simpleException.getMsgId ()); simpleExceptionResponse.setUserId (simpleException.getUserId ()); simpleExceptionResponse.setRequestTime (simpleException.getRequestTime ()); log.error ("simpleException ::" + simpleException); log.debug ("simpleException.getMsgId () ::" + simpleException.getMsgId ()); log.debug ("simpleException.getUserId () ::" + simpleException.getUserId ()); return simpleExceptionResponse; }

В приведенном выше коде мы просто выбрасываем stati c msg из свойств, сопоставленных ключом класса sampleConstant, но теперь мне нужно передать значение c в качестве динамического *1046*, полученное из файла свойств, и мне нужно знать как передать значение Dynami c в файл свойств.

Я пробовал использовать мгновенное решение, но это не очень хорошее решение, мне нужно другое решение

String dynamicException = "Значение цены не в пределах Диапазон цены триггера, Диапазон цены триггера составляет ["+ sLowerLimit +" - "+ sHigherLimit +"] ";

            if ((Double.parseDouble(orderRequest.getTriggerPrice()) < sLowerLimit)
                    || (Double.parseDouble(orderRequest.getTriggerPrice()) > sHigherLimit)) {

                throw new SimpleException(dynamicException);
            }

Я ожидаю решения, как это сделать с помощью регулярного выражения

Например оно должно быть

"Значение цены вне диапазона цены триггера, диапазон цены триггера составляет [" + sLowerLimit + "-" + sHigherLimit + "]"

вместо

«Значение цены вне диапазона цены срабатывания»

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете использовать заполнители в файле свойств:

EPO0009=Price value not within Trigger price range, Trigger Price Range is [sLowerLimit-sHigherLimit]

А затем заменить его перед генерацией исключения:

String lowerLimit = getLowerLimit(); // this returns 2
String higherLimit = getHigherLimit(); // this returns 3
String message = errorMsg.replace("sLowerLimit", lowerLimit)
                       .replace("sHigherLimit", higherLimit);

Итак, сообщение будет:

Price value not within Trigger price range, Trigger Price Range is [2-3]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...