If you assume that dividends are discrete but proportional to the pre dividend date stock price then the BS formula is exact provided you correctly compute the expiry date stock forward price, hence the continuous dividend yield case calibrated to the correct forward will give the correct result (this is because with proportional dividends, discrete or continuous, the stock terminal price is always log normal).
If you assume on the other hand that dividends are discrete and have fixed amounts then there is no closed form formula. Common approximations either move the dividends to the valuation date by subtracting their PV from the spot or move the dividends to the expiry date by adding their FV to the strike, or to use a combination of both. There are however more accurate approximations that use the log normal closed form formula around the stock forward price with an adjustment on volatility see for instance Bos R., Gairat A., Shepeleva A. (2003) Dealing with discrete dividends, Risk Magazine January 2003.
As an alternative you can forgo closed form formulas and solve for the exact model with discrete fixed dividends (or a combination of discrete fixed and proportional amounts) using a numerical method such as Monte Carlo or finite differences.