public class MathsTest4 { /** * @param args * @throws MathsException */ public static void main(String[] args) throws MathsException { Maths m = new Maths(); int result = 0; // No catching! Then the method should be declared // to throw the exception (or a super type like // Exception or even Throwable) // m.factorial(5); // Look! A try block can be defined without a catch block // as well. try { result = m.factorial(-5); System.out.println("xxx"); } finally { System.out.println("Inside finally block"); } // No try block is also possible // Since the method is declared to duct the exception result = m.factorial(-5); System.out.println(result); } }