Quantcast
Channel: 例外タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 100

Spring 例外ハンドリング

$
0
0

はじめに

Spring初心者です。
1.5ヶ月ほどで、Webアプリケーションを作りました。

例外処理について調べたので、まとめます。

HandlerExceptionResolver

これを使って例外処理をする。

以下の順番で処理されていく
@ExceptionHandlerを付与したメソッド
@ResponseStatusを付与したメソッド
③ Springで定義されている例外を処理するHandlerExceptionResolver
④ HandlerExceptionResolverを実装したクラス

個人制作の範疇ならば、①と②を使えば十分だった。

実際の使用例
@ExceptionHandler

Controller.java
@ExceptionHandler(Exception.class)
public String Handler(){catchしたExceptionの処理内容}

  
@ResponseStatus (クラスに@つけても大丈夫かも)

Controller.java
@ResponseStatus(value = HttpStatus.NOT_FOUND)
public String Status(){例外処理}

例外を投げる

アプリケーション制作にあたり、以下のような役割にわけた。

  • @Controller
  • @Service
  • @Repository

理想としては、@Serviceでエラーを投げたかったが、できなかった。
おそらく@Controllerクラスで、各Serviceクラスを@Autowiredしてたから、
Controller側で処理するしかなかったと思っている。

もしかしたらServiceで処理できたのかもしれないな。。。

まとめ

慣れたら意外と、例外処理はできた。

@ControllerのスーパークラスにExceptionControllerなどを作って、
そこに各Exceptionの処理をまとめて記述した。
Controller単位でハンドリングしたい場合は、
都度Overrideすれば、余分な記述はなくなるかと。

ソースはGitHubに載っています。


Viewing all articles
Browse latest Browse all 100

Trending Articles