Size: a a a

2020 February 13

LS

L S in learn.java
Sam Gold
как?)
String[] sum(String[]... arrays) { return Stream.of(arrays).flatMap(Arrays::stream).toArray(String[]::new);
источник
2020 February 14

ДО

Даниил Осипов in learn.java
Ребят, всем привет. Реализую возможно загрузки xml-файлов на сервер. В сервисе выполняется парсинг загруженного файла, и, если парсинг выкидывает экзеп, то я в кетче удаляю загруженный файл/либо восстанавливаю его предыдущую версию. Всё работает неплохо, но код выглядит не очень из-за награмождений try-catch и return-ов. Нужно прорефакторить. Хотел использовать @ControllerAdvice, но не знаю, как передать переменные в обработчик ResponseEntityExceptionHandler.
источник

ch

central hardware in learn.java
Даниил Осипов
Ребят, всем привет. Реализую возможно загрузки xml-файлов на сервер. В сервисе выполняется парсинг загруженного файла, и, если парсинг выкидывает экзеп, то я в кетче удаляю загруженный файл/либо восстанавливаю его предыдущую версию. Всё работает неплохо, но код выглядит не очень из-за награмождений try-catch и return-ов. Нужно прорефакторить. Хотел использовать @ControllerAdvice, но не знаю, как передать переменные в обработчик ResponseEntityExceptionHandler.
рефакторить код не имея понятия о самом коде это что то новое
источник

d

dima in learn.java
Даниил Осипов
Ребят, всем привет. Реализую возможно загрузки xml-файлов на сервер. В сервисе выполняется парсинг загруженного файла, и, если парсинг выкидывает экзеп, то я в кетче удаляю загруженный файл/либо восстанавливаю его предыдущую версию. Всё работает неплохо, но код выглядит не очень из-за награмождений try-catch и return-ов. Нужно прорефакторить. Хотел использовать @ControllerAdvice, но не знаю, как передать переменные в обработчик ResponseEntityExceptionHandler.
используй свои самописные RuntimeException, в конструктор передавай все, что тебе надо
источник

d

dima in learn.java
а потом в классе с @ControllerAdvice в ExceptionHandler лови свой самописный экспепшен и обрабатывай ответ клиенту
источник

Ю

Юрий in learn.java
dima
используй свои самописные RuntimeException, в конструктор передавай все, что тебе надо
ошибка возникает глубоко в методе одной из библиотек, то есть через throw кастомный ексепшн с параметрами в сервисе пробросить не получится
источник

ДО

Даниил Осипов in learn.java
dima
используй свои самописные RuntimeException, в конструктор передавай все, что тебе надо
Типа так?
try{
  parsing(file);
} catch{
throw customEx(file);
}
источник

ДО

Даниил Осипов in learn.java
Как то не оч выглядит
источник

d

dima in learn.java
Даниил Осипов
Типа так?
try{
  parsing(file);
} catch{
throw customEx(file);
}
а файл тебе нужен для чего?
источник

d

dima in learn.java
зачем его передавать в исключение?
источник

ДО

Даниил Осипов in learn.java
Чтоб удалить, либо вернуть предыдущую его версию, которая была до загрузки
источник

d

dima in learn.java
зачем его передавать в исключение?
источник

d

dima in learn.java
если нужно возвращать именно файл предыдущий, то делать это через @ControllerAdvice не нужно
источник

d

dima in learn.java
возвращай прямо в методе основном
источник

d

dima in learn.java
а трай-кэтч лапшу ты можешь заменить на 1 большой трай-кэтч, в кэтч блоке перечислив все выбрасываемые экспшены и завернуть это в рантайм эксепшен
источник

ДО

Даниил Осипов in learn.java
Т.е. без try-catch мне никак не обойтись?
источник

d

dima in learn.java
Даниил Осипов
Т.е. без try-catch мне никак не обойтись?
если либа кидает чекед эксепшен, то да
источник

d

dima in learn.java
но поверь, куда большая проблема через обработчик ошибок возвращать клиенту файл
источник

ДО

Даниил Осипов in learn.java
dima
если либа кидает чекед эксепшен, то да
там анчекед
источник

d

dima in learn.java
Даниил Осипов
там анчекед
тогда зачем тебе трай кэтч?
источник