Until they get within 10km they are going subsonic. Why can't they be detected and shot down before then?
They could be detected and shot down over long distances but that assumes 100% efficiency on our part. If our carrier was in the gulf or other tight confines (for a carrier) and a barrage of 50 or more of these things were launched I am not optimistic we could shoot them all down before they hit the fleet. If they used several submarines they could probably get one or more within the envelope.
In the barrage scenario we have to be right 50 times and they only have to be right once. This was the Russian strategy to deal with our carriers using lots of long range bombers and submarines launching multiple missiles.
The cost comparison is ridiculously cheap for the other side compared to the cost of our carriers, crew, and aircraft on board.
The best defense for a carrier is lots of open water but as you get further from the area of operations you decrease the effectiveness of your attack aircraft (time on target and fewer sorties). Our strategy to protect our carriers should constantly evolve and be a top priority for the Navy.
The loss of even one carrier would be a devastating blow to our psyche as much as our ability to prosecute a war. That is especially true in our present political climate where the democrats would be more likely to play the blame game and direct their anger towards the President than towards our foes.