Пользователь отправляет файл CSV, который используется программой.Значения, которые используются в программе, берутся из CSV, обычно, если значения пропущены, это проблема.Ниже мое решение.
Ip поверх
private List<String> currentFieldName = new ArrayList<String>();
Как часть метода:
try {
setCurrentFieldName("Trim Space");
p.setTrimSpace(currentLineArray[dc.getTRIM_POSITION()].equals("yes") ? true : false);
setCurrentFieldName("Ignore Case");
p.setIgnoreCase(currentLineArray[dc.getIGNORE_CASE_POSITION()].equals("yes") ? true : false);
} catch (NullPointerException e) {
throw new InputSpreadsheetValueUnassignedException("\"Type\" field not set: " + currentFieldName);
}
И метод, который отслеживает текущее поле, которое просматриваетсяat:
private void setCurrentFieldName(String fieldName) {
currentFieldName.clear();
currentFieldName.add(fieldName);
}
Идея заключается в том, что если пользователь не сможет передать значение, и я получу нулевое значение, перед выдачей исключения я буду знать, какое значение не было присвоено.
Итак, как говорится, конкретные вопросы:
- Является ли то, что я показал ниже, приемлемым решением?
- Можете ли вы предложить что-то более элегантное?