[prev in list] [next in list] [prev in thread] [next in thread]
List: bcel-user
Subject: Re: Exception Handling
From: Andrew Huntwork <ash () huntwork ! net>
Date: 2004-08-09 14:15:58
Message-ID: 4117871E.8000808 () huntwork ! net
[Download RAW message or body]
yeah, that looks generally fine. maybe you could post the code that
adds the exceptions and/or the "mangled" bytecode
Irving, Dave wrote:
> Hi,
>
> I've used BCEL a while ago to create **new** classes on the fly, but am
> getting stuck on something I've never had to do before: Inserting
> instructions to existing classes.
> Im trying to wrap each method in a class with a
> try/catch(NullPointerException).
> So this method:
>
> public int getInt() {
> return getIntFromSomewhere();
> }
>
> would become:
>
> public int getInt() {
> try {
> return getIntFromSomewhere();
> }
> catch(NullPointerException e) {
> // do something
> return 0;
> }
> }
>
> Im not having much luck at the moment - my current approach is this:
>
> 1) Use the methods InstructionList.getStart() to get the first instruction
> 2) Use InstructionList.getEnd() to get the last instruction
> 3) Add exception handling code (keeping an InstructionHandler to the first
> instruction in the handling code)
> 4) Add an appropriate return (using InstructionFactory.createNull ) if
> return type is not void
> 5) Add an exception handler to the method, using start and end obtained from
> 1/2 above, and the instruction handle obtained in 3 as the exception
> handling code handle
>
> Does this seem like a reasonable approach? Currently the methods produced
> seem to be completely mangled - so Im guessing Im way out on something -
> maybe one of my assumptions above.
> Any advice would be greatly appreciated!
>
> This e-mail and any attachment is for authorised use by the intended recipient(s) \
> only. It may contain proprietary material, confidential information and/or be \
> subject to legal privilege. It should not be copied, disclosed to, retained or used \
> by, any other party. If you are not an intended recipient then please promptly \
> delete this e-mail and any attachment and all copies and inform the sender. Thank \
> you.
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: bcel-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: bcel-user-help@jakarta.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: bcel-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: bcel-user-help@jakarta.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic