In class we were given a constructive proof that $\mu(\mathbb{Q}) = 0$, with $\mu$ the Lebesgue measure. Of course it is clear that they have measure zero since they are countable, but this constructive proof doesn't sit well with me.
Let $\{ q_n\}_{n=1}^{\infty}$ be an enumeration of the rationals. Then fix $\varepsilon > 0$ and for each $q_n$ take the interval $A_n = (q_n - \frac{\varepsilon}{2^n}, q_n + \frac{\varepsilon}{2^n})$. Then
$$\mu^*\left(\{q_n\}_{n=1}^{\infty}\right) \leq \sum_{n=1}^{\infty} \mu (A_n) = \sum_{n=1}^{\infty} \frac{\varepsilon}{2^{n-1}} = 2 \varepsilon$$
So the measure is zero since $\varepsilon$ was arbitrary.
However, the part that doesn't sit well with me is that it seems that eventually it must be that this covering of the rationals by open sets must eventually cover the entire real line. Indeed, if there were some "gap" in the cover, no matter how small, since the rationals are dense then there must be some rational (infinitely many rationals, actually) that are not covered. So then the combined measure of these intervals could not be zero since their union is the real line. What is wrong with my thinking?