I had cats that threw up on my bed all the time!! And it was a pain having to wash the king size sheets, comforter, and pillows all the time and throwing out the egg crates underneath. It would be 3 loads of wash at all times of the day and night! Costly and not fun at all! Those cats have since passed, but the ones I have now will do it once in a while. So what I have been doing for years sounds crazy, but makes my life so much easier. I make my bed, then take a shower curtain liner (from a dollar store) and throw that over the top of the bed. It fits my king size bed almost perfectly. Over that I just throw and old twin size comforter that I have from 20 years ago. They love to lay on the comforter, and in the event they throw up, it doesn't go through to my good king sized bedding or mattress. I can just wipe up the comforter and throw that in the wash. Those dollar store shower curtains have been a life saver. (my cat's life)
I give my cats Iam's Hairball and Weight control and it's helped a lot! Good luck!