// This program will dynamically utilize the ConError // or GUIError objects as defined by the property // file "DynTest.prop". import java.io.*; import java.util.Properties; public class DynTest { public static void main(String[] args) { Properties props=new Properties(); // load property settings. try { props.load( new FileInputStream( new File("DynTest.prop"))); } catch(IOException x) { System.err.println( "Unable to open property file."); System.exit(1); } String s=(String) props.get("ErrorDriver"); // create generic reference to ErrorBase // family using the base class. ErrorBase e=null; // Dynamically load the class and instantiate // an object try { e=(ErrorBase) Class.forName(s).newInstance(); } catch(ClassNotFoundException x) { System.err.println("Class not found."); System.exit(1); } catch(InstantiationException x) { System.err.println("Can't create object."); System.exit(1); } catch(IllegalAccessException x) { System.err.println("Access violation."); System.exit(1); } // Display error message e.display("This is a dynamic message."); System.exit(0); } }