Type catchType = exceptionGen.getCatchType(); if (catchType == null) catchType = Type.THROWABLE;
Type catchType = null;  if (ACCURATE_EXCEPTIONS) { try {   CachedExceptionSet cachedExceptionSet = getCachedExceptionSet(edge.getSource()); ExceptionSet edgeExceptionSet = cachedExceptionSet.getEdgeExceptionSet(edge); if (!edgeExceptionSet.isEmpty()) {  catchType = ExceptionObjectType.fromExceptionSet(edgeExceptionSet); } } catch (ClassNotFoundException e) { lookupFailureCallback.reportMissingClass(e); } }  if (catchType == null) {   catchType = exceptionGen.getCatchType(); if (catchType == null) catchType = Type.THROWABLE; }
	public void meetInto(TypeFrame fact, Edge edge, TypeFrame result) throws DataflowAnalysisException {		BasicBlock basicBlock = edge.getTarget();		if (basicBlock.isExceptionHandler() && fact.isValid()) {			// Special case: when merging predecessor facts for entry to			// an exception handler, we clear the stack and push a			// single entry for the exception object.  That way, the locals			// can still be merged.			CodeExceptionGen exceptionGen = basicBlock.getExceptionGen(); 			TypeFrame tmpFact = createFact();			tmpFact.copyFrom(fact);			tmpFact.clearStack();			Type catchType = exceptionGen.getCatchType();			if (catchType == null)				catchType = Type.THROWABLE; // handle catches anything throwable			tmpFact.pushValue(catchType);			fact = tmpFact;		}		result.mergeWith(fact);	}