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>