Table of Contents [hide]
Lets understand this with the help of example:
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


Run the application

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
