Spring MVC Exceptional Handling using @ControllerAdvice example

In this post , we will see how to do exceptional handling in Spring MVC using @ControllerAdvice. In previous post, we have already seen how to use @ExceptionHandler to handle exceptions but @ExceptionHandler can be applied to one controller only but what if you want to handle exception globally i.e. across multiple controller. You can use @ControllerAdvice to handle exceptions globally.
Lets understand this with the help of example:

1) Create a dynamic web project using maven in eclipse named “SpringMVCControllerAdviceExample”

Maven dependencies

2) Our pom.xml will look like below

pom.xml

Spring application configuration:

3) Change web.xml as below:

4) create a xml file named springrest-servlet.xml in /WEB-INF/ folder.
Please change context:component-scan if you want to use different package for spring to search for controller.Please refer to spring mvc hello world example for more understanding.

Create Controller

6) Create a controller named “HelloWorldController.java” in package org.arpit.java2blog.controller

Create ControllerAdvice named GlobalExceptionController.java

As you can see, we have annotated two method i.e. catchCustomException and catchIOException with @ExceptionHandler. These methods will handle CustomException and IOException respectively and these exceptions can be thrown by multiple controllers too.

Create view

Modify index.jsp as below

Create Custom_Excepion.jsp in /WEB-INF/ folder to handle CustomException exception.

Create IOException.jsp in /WEB-INF folder as below to handle IOException.

7) It ‘s time to do maven build.

Right click on project -> Run as -> Maven build

Maven build in eclipse
8) Provide goals as clean install (given below) and click on run
Maven build in eclipse

Run the application

9) Right click on project -> run as -> run on server
Select apache tomcat and click on finish

10) Lets hit below URL
http://localhost:8080/SpringMVCControllerAdviceExample/helloworld/hello


As you can see, it is working fine with above URL.
Now lets hit some URL which will throw exception and exception will be handled by @ExcpetionHandler in @ControllerAdvice class.

When you hit below URL.
http://localhost:8080/SpringMVCControllerAdviceExample/helloworld/CustomException



As you can see, when you hit above URL , CustomException is thrown and handled by catchCustomException method in @ControllerAdvice class.

When you hit below URL.
http://localhost:8080/SpringMVCControllerAdviceExample/helloworld/IOException


As you can see, when you hit above URL , CustomException is thrown and handled by catchIOException method in @ControllerAdvice class.

import_contacts

You may also like:

Related Posts

  • 10 July

    Spring MVC tutorial

    Table of ContentsSpring MVC workflowSpring MVC basicsSpring MVC hello world exampleSpring Component,Service, Repository and Controller exampleSpring MVC @RequestMapping exampleSpring MVC @RestController annotation exampleSpring MVC @ModelAttribute annotation exampleSpring MVC ModelMapSpring MVC file upload exampleSpring MVC interceptor exampleSpring MVC IntegrationSpring MVC Hibernate MySQL exampleSpring MVC angularjs exampleSpring MVC Web servicesSpring restful web service exampleSpring restful web service […]

  • 13 September

    Spring MVC + Spring Data + Hibernate + MySQL example

    Table of ContentsSpring MVC tutorial:Source code:Maven dependenciesCreate bean classCreate ControllerCreate Repository interfaceCreate Service classCreate viewRun the application In this post, we are going to see integration of Spring MVC,Spring Data,hibernate and mysql CRUD example. We have already seen Spring MVC, hibernate and mysql example in previous tutorial. Spring Data JPA provides CRUD API, so you don’t […]

  • 26 August

    Spring MVC Exceptional Handling using @ExceptionHandler example

    Table of ContentsSource code:Maven dependenciesSpring application configuration:Create ControllerRun the application In this post , we will see how to do exceptional handling in Spring MVC using @ExceptionalHandler. You can use @ExceptionHandler to redirect to error view when exception occurs. Lets understand this with the help of example: Source code: Download click to begin 20KB .zip 1) Create a dynamic […]

  • 25 August

    Spring MVC Hibernate MySQL CRUD example

    Table of ContentsGithub Source code:Maven dependenciesCreate bean classCreate ControllerCreate DAO classCreate Service classCreate viewRun the application In this post, we are going to see integration of Spring MVC, hibernate and mysql CRUD example. We have already seen integration of Spring Rest with hibernate in previous tutorial. Spring MVC Tutorial Spring MVC hello world example Spring […]

  • 23 August

    Spring MVC + log4j example

    In this post, we will see how to integrate Spring MVC with log4j. Spring MVC tutorial: Spring MVC hello world example Spring MVC Hibernate MySQL example Spring MVC interceptor example Spring MVC angularjs example Spring MVC @RequestMapping example Spring Component,Service, Repository and Controller example Spring MVC @ModelAttribute annotation example Spring MVC @RestController annotation example Spring […]

  • 19 August

    Spring @RestController example

    In this post,  we are going to see another important annotation called @RestController. It is generally used while working with Spring restful Web services implementation. Spring MVC tutorial: Spring MVC hello world example Spring MVC Hibernate MySQL example Spring MVC interceptor example Spring MVC angularjs example Spring MVC @RequestMapping example Spring Component,Service, Repository and Controller […]

Leave a Reply

Your email address will not be published. Required fields are marked *

Subscribe to our newletter

Get quality tutorials to your inbox. Subscribe now.