if (DEBUG) System.out.println(reachable ? "\tReachable" : "\tNot reachable");
	private boolean reachable(Edge edge, Set<ObjectType> thrownExceptionSet)		throws ClassNotFoundException {		BasicBlock handlerBlock = edge.getDest();		CodeExceptionGen handler = handlerBlock.getExceptionGen();		ObjectType catchType = handler.getCatchType();		if (catchType == null) {			// This handler catches all exceptions			thrownExceptionSet.clear();			return true;		}		String catchClassName = SignatureConverter.convert(catchType.getSignature());		boolean reachable = false;		// Go through the set of thrown execeptions.		// Any that will DEFINITELY be caught be this handler, remove.		// Any that MIGHT be caught, but won't definitely be caught,		// remain.		for (Iterator<ObjectType> i = thrownExceptionSet.iterator(); i.hasNext(); ) {			ObjectType thrownException = i.next();			String thrownClassName = SignatureConverter.convert(thrownException.getSignature());			if (Repository.instanceOf(thrownClassName, catchClassName)) {				// The thrown exception is a subtype of the catch type,				// so this exception will DEFINITELY be caught by				// this handler.				reachable = true;				i.remove();			} else if (Repository.instanceOf(catchClassName, thrownClassName)) {				// The thrown exception is a supertype of the catch type,				// so it MIGHT get caught by this handler.				reachable = true;			}		}		return reachable;	}