Я использую Hibernate в своем веб-приложении весной. Мои методы в контроллере с помощью try catch block, и если все в порядке, я устанавливаю параметр перенаправления «success == true», и если что-то пошло не так, я использую «error == true». Это работает. Но иногда в моей консоли спящего режима показывает мне предупреждение, например, так:Спящий журнал с консоли в качестве исключений
2017-01-28 19:13:44.253 WARN 4532 --- [nio-8080-exec-8] o.hibernate.util.JDBCExceptionReporter : SQL Error: 1062, SQLState: 23000
2017-01-28 19:13:44.253 ERROR 4532 --- [nio-8080-exec-8] o.hibernate.util.JDBCExceptionReporter : Duplicate entry
Я просто хочу, чтобы поймать эти предупреждения в попытке поймать блока, потому что если я пытаюсь добавить новую запись в БД с - в данном случае - дублировать запись то в try catch block все принято, и я получил информацию «Operation succesfull», но это не так. Я пытался поймать разные исключения, такие как SQLException, исключение HibernateException, даже общее - исключение. Но это не сработает. Для таких операций, как добавление, обновление, удаление записей, я использую методы «void», поэтому я не могу вернуть какое-либо значение.
Можно ли уловить эти предупреждения/ошибки с консоли и как?
@RequestMapping(value="/adduserdb", method=RequestMethod.POST)
public String addUserToDb(@ModelAttribute(value="userform") User user, RedirectAttributes redirectAttributes) {
try {
userService.createBasicUser(user);
redirectAttributes.addAttribute("success", true);
return "redirect:/admin/user/adduser";
} catch(Exception e) {
redirectAttributes.addAttribute("error", true);
return "redirect:/admin/user/adduser";
}
}
Вот пример одного из моих методов, как я это делаю, но он не работает.
Вы уверены, что исключение действительно поднято? Было бы различие между «поймать не поймать его» и «ничего не поймать». Может быть, userService обрабатывает его? – Deltharis