title: What are the advantages of @ControllerAdvice over @ExceptionHandler or HandlerExceptionResolver for handling exceptions?
body: <p><strong>Spring 3.2</strong> introduced <code>@ControllerAdvice</code> annotation for handling exceptions in a Spring MVC application. But prior to this version Spring had <code>@ExceptionHandler</code> or <code>HandlerExceptionResolver</code> to handling exceptions in a Spring MVC application. Then why <strong>Spring 3.2</strong> introduced <code>@ControllerAdvice</code> annotation for handling exceptions? I strongly believe that <strong>Spring 3.2</strong> introduced <code>@ControllerAdvice</code> annotation <strong><em>to address the limitations of</em></strong> <code>@ExceptionHandler</code> or <code>HandlerExceptionResolver</code> or make the <strong><em>exceptions handling more stronger</em></strong>.</p>
  
  <p>Can any one explain the advantages of <code>@ControllerAdvice</code> over <code>@ExceptionHandler</code> or <code>HandlerExceptionResolver</code> for handling exceptions?</p>