I've noticed that Soot throws a bare RuntimeException in many places to signal an error. Have you considered throwing your own SootException and have it's behavior be customized with Soot options? E.g., perhaps you could be dropped into a Beanshell instance to inspect heap-resident data (I do this right now with my Soot phases). Manoj