package org.megha.blog.example.part9; /** An exception thrown when no tickets are available */ public class NoTicketsAvailableException extends Exception { } package org.megha.blog.example.part9; /** * A theatre that sells tickets. */ public class Theatre { int availableTickets; /** creates a new theatre with a fixed number of tickets */ public Theatre(int availableTickets) { this.availableTickets = availableTickets; } /** * Sells a ticket to the buyer. * * @return a unique ticket id representing the ticket sold * @throws NoTicketsAvailableException when all tickets are sold out */ public int buyTicket() throws NoTicketsAvailableException { if (availableTickets == 0) { throw new NoTicketsAvailableException(); } return availableTickets--; } public static void main(String args[]) { // create a new threatre with only 3 seats/tickets Theatre theatre = new Theatre(3); for (int i = 1; i <= 5; i++) { try { int ticketId = theatre.buyTicket(); System.out.println("Ticket #" + i + " is " + ticketId); } catch (NoTicketsAvailableException e) { System.out.println("Could not buy ticket #" + i); } } } }
Thursday, September 15, 2011
Checked Exceptions
Checked exceptions must be declared on the method and must be caught (or allowed to raise up) by the caller. Here's an example that creates a checked exception (NoTicketsAvailableException) by extending Exception. The buyTicket() method in Theatre throws this exception when there are no tickets to sell.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment