/*******************************************************************************
 * Copyright (c) 2006 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/

public class ThrowsException {
	
	public static void main(String[] args) {
		ThrowsException anObject = new ThrowsException();
		try {
			anObject.throwBaby();
		} catch(TestException ie) {
			// do nothing
		}		
		anObject.throwBaby();
	}


	public void throwBaby() {
		throw new TestException();
	}
}
