public class TwoCatchesDemo
1: //TwoCatchesDemo.java
3: import java.util.Scanner;
5: public class TwoCatchesDemo
6: {
7: public static void main(String[] args)
8: {
9: try
10: {
11: System.out.print("\nEnter number of widgets produced: ");
12: Scanner keyboard = new Scanner(System.in);
13: int widgets = keyboard.nextInt();
14: if (widgets < 0)
15: throw new NegativeNumberException("widgets.");
17: System.out.print("How many were defective? ");
18: int defective = keyboard.nextInt();
19: if (defective < 0)
20: throw new NegativeNumberException("defective widgets.");
22: double ratio = exceptionalDivision(widgets, defective);
23: System.out.println("One in every " + ratio +
24: " widgets is defective.");
25: }
26: catch(DivideByZeroException e)
27: {
28: System.out.println("Congratulations! A perfect record!");
29: }
30: catch(NegativeNumberException e)
31: {
32: System.out.println("Cannot have a negative number of " +
33: e.getMessage());
34: }
35: System.out.println("End of program.");
36: }
38: public static double exceptionalDivision
39: (
40: double numerator,
41: double denominator
42: ) throws DivideByZeroException
43: {
44: if (denominator == 0) throw new DivideByZeroException();
45: return numerator / denominator;
46: }
47: }