You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bcel-dev@jakarta.apache.org by md...@apache.org on 2001/12/20 10:53:22 UTC

cvs commit: jakarta-bcel/examples HelloWorldBuilder.java

mdahm       01/12/20 01:53:22

  Modified:    examples HelloWorldBuilder.java
  Log:
  exception handler does something more useful
  
  Revision  Changes    Path
  1.2       +15 -4     jakarta-bcel/examples/HelloWorldBuilder.java
  
  Index: HelloWorldBuilder.java
  ===================================================================
  RCS file: /home/cvs/jakarta-bcel/examples/HelloWorldBuilder.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- HelloWorldBuilder.java	2001/10/29 20:01:09	1.1
  +++ HelloWorldBuilder.java	2001/12/20 09:53:22	1.2
  @@ -14,14 +14,17 @@
    *     try {
    *       System.out.print("Please enter your name> ");
    *       name = in.readLine();
  - *     } catch(IOException e) { return; }
  + *     } catch(IOException e) { 
  + *       System.out.println(e);
  + *	 return; 
  + *     }
    * 
    *     System.out.println("Hello, " + name);
    *   }
    * }
    * </PRE>
    *
  - * @version $Id: HelloWorldBuilder.java,v 1.1 2001/10/29 20:01:09 jvanzyl Exp $
  + * @version $Id: HelloWorldBuilder.java,v 1.2 2001/12/20 09:53:22 mdahm Exp $
    * @author  <A HREF="http://www.berlin.de/~markus.dahm/">M. Dahm</A>
    */
   public class HelloWorldBuilder {
  @@ -100,9 +103,17 @@
       InstructionHandle try_end = il.append(g);
   
       /* } catch() { ... }
  -     * Add exception handler: simply return from method
  +     * Add exception handler: print exception and return from method
        */
  -    InstructionHandle handler = il.append(InstructionConstants.RETURN);
  +    InstructionHandle handler =
  +      il.append(factory.createFieldAccess("java.lang.System", "out", p_stream,
  +					  Constants.GETSTATIC));
  +    // Little trick in order not to save exception object temporarily
  +    il.append(InstructionConstants.SWAP);
  +
  +    il.append(factory.createInvoke("java.io.PrintStream", "println", Type.VOID, 
  +	   new Type[] { Type.OBJECT }, Constants.INVOKEVIRTUAL));
  +    il.append(InstructionConstants.RETURN);
       mg.addExceptionHandler(try_start, try_end, handler,
   			   new ObjectType("java.io.IOException"));
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>