Skip to content

Exceptions - Évènement Spécial!

Mise en situation :

Vous êtes chargé de mettre en place un système de réservation de billets pour divers événements tels que des concerts, des conférences, et des pièces de théâtre.

Chaque événement a un nombre limité de places disponibles, et vous devez implémenter un système qui gère les réservations tout en s'assurant qu'aucune surréservation ne soit effectuée.

Le programme Java doit permettre à l'utilisateur de saisir le nombre de billets souhaités, le nom de l'événement, et son adresse email.

Chaque entrée doit être validée pour éviter des erreurs comme un nombre de billets incorrect, un événement non supporté, ou une adresse email invalide.

En cas d'erreur, des exceptions spécifiques doivent être levées et gérées de manière appropriée.

Le système doit inclure les fonctionnalités suivantes :

  • Validation du nombre de billets : Le nombre doit être positif et ne doit pas dépasser une certaine limite (par exemple, 10 billets).
  • Validation de l'événement : L'événement doit faire partie d'une liste prédéfinie d'événements supportés, et le nombre de places disponibles doit être suffisant.
  • Validation de l'email : L'email doit être dans un format valide.
  • Validation de l'email : L'email est invalide si le domaine est "example.com" ou "test.com".

En cas de problème, l'utilisateur doit recevoir des messages d'erreur spécifiques pour l'aider à corriger sa saisie. De plus, un message indiquant la fin du processus doit toujours être affiché, qu'il y ait eu des erreurs ou non.

EventBookingSystemmain(String[] args)validateNumberOfTickets(int, Booking)validateEvent(String, int, Booking)validateEmail(String, Booking)getSupportedEvents(): StringBookingnumberOfTickets: intevent: Stringemail: StringBooking(int, String, String)getNumberOfTickets(): intgetEvent(): StringgetEmail(): StringEventid: intname: StringavailableSeats: intEvent(int, String, int)getId(): intgetName(): StringgetAvailableSeats(): intreduceSeats(int)EventDataSUPPORTED_EVENTS: Event[]BookingExceptionbooking: BookingadditionalInfo: StringBookingException(String, Booking)BookingException(String, Booking, String)getBooking(): BookinggetAdditionalInfo(): StringInvalidNumberOfTicketsExceptionUnsupportedEventExceptionInvalidEmailExceptionEmailDomainNotAllowedException
EventBookingSystemmain(String[] args)validateNumberOfTickets(int, Booking)validateEvent(String, int, Booking)validateEmail(String, Booking)getSupportedEvents(): StringBookingnumberOfTickets: intevent: Stringemail: StringBooking(int, String, String)getNumberOfTickets(): intgetEvent(): StringgetEmail(): StringEventid: intname: StringavailableSeats: intEvent(int, String, int)getId(): intgetName(): StringgetAvailableSeats(): intreduceSeats(int)EventDataSUPPORTED_EVENTS: Event[]BookingExceptionbooking: BookingadditionalInfo: StringBookingException(String, Booking)BookingException(String, Booking, String)getBooking(): BookinggetAdditionalInfo(): StringInvalidNumberOfTicketsExceptionUnsupportedEventExceptionInvalidEmailExceptionEmailDomainNotAllowedException