Analisando as Questões :**
**
A - Incorreta : Está lançando Exception, não a classe personalizada RoomAlreadyBookedException.
B - Correta : Usa throw com a exceção personalizada e todos os parâmetros obrigatórios.
C - Incorreta : Cria a exceção, mas não a lança (faltou throw).
D - Incorreta : Lança a exceção, mas não fornece os parâmetros obrigatórios (roomId, startTime, endTime).
A forma correta de lançar a exceção RoomAlreadyBookedException é utilizando o operador throw junto com a instância da exceção, passando os parâmetros obrigatórios (roomId, startTime, endTime).