Spring will choose the method that handles the more specific exception type. As a rule of thumb, If an @ExceptionHandler method matches the exact type of the exception, Spring will use that method. If no specific handler is found, Spring will use the more generic handler (Exception or Throwable).