if (!cachedExceptionSet.isUpToDate(result)) { ExceptionSet exceptionSet = null; try { exceptionSet = computeThrownExceptionTypes(basicBlock); } catch (ClassNotFoundException e) {   lookupFailureCallback.reportMissingClass(e); exceptionSet = exceptionSetFactory.createExceptionSet(); exceptionSet.addExplicit(Type.THROWABLE); }
TypeFrame copyOfResult = createFact(); copy(result, copyOfResult);
	private CachedExceptionSet computeBlockExceptionSet(BasicBlock basicBlock, TypeFrame result)		throws DataflowAnalysisException {		CachedExceptionSet cachedExceptionSet = getCachedExceptionSet(basicBlock);		if (!cachedExceptionSet.isUpToDate(result)) {			ExceptionSet exceptionSet = null;			try {				exceptionSet = computeThrownExceptionTypes(basicBlock);			} catch (ClassNotFoundException e) {				// Special case: be as conservative as possible				// if a class hierarchy lookup fails.				lookupFailureCallback.reportMissingClass(e);				exceptionSet = exceptionSetFactory.createExceptionSet();				exceptionSet.addExplicit(Type.THROWABLE);			}			TypeFrame copyOfResult = createFact();			copy(result, copyOfResult);			cachedExceptionSet = new CachedExceptionSet(copyOfResult, exceptionSet);			thrownExceptionSetMap.put(basicBlock, cachedExceptionSet);		}		return cachedExceptionSet;	}