私はSpring上のWebアプリケーションでHibernateを使用しています。 try catchブロックを使用してコントローラの私のメソッドとすべてが大丈夫です私はリダイレクトパラメータ "成功== true"を設定し、何かが間違っている場合、私は "エラー==真"を使用します。 これは機能します。しかし、時には私のコンソール休止状態で私はこのように、たとえば警告を示しています例外としてコンソールからHibernateログ
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
私はちょうど私がDBに新しいエントリを追加しようとするためのtry catchブロックでこれらの警告をキャッチしたい
- このケースで - エントリを複製try catchブロックですべてが受け入れられ、 "Operation succesfull"という情報が得られますが、そうではありません。 私はSQLException、HibernateException、一般的なExceptionのような異なる例外をキャッチしようとしました。しかし、それは動作しません。エントリの追加、更新、削除などの操作では、 '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";
}
}
は、私はそれを行う方法私の方法の一つの例ですが、それは仕事をdoesntの。
実際に例外が発生していますか? 「キャッチしない」と「キャッチする」の違いがあります。たぶんuserServiceがそれを処理しますか? – Deltharis