catchList.add(new CaughtException(name, obj.getStartPC(), obj.getEndPC(), obj.getHandlerPC()));
CaughtException caughtException = new CaughtException(name, obj.getStartPC(), obj.getEndPC(), obj.getHandlerPC()); catchList.add(caughtException);  try {     LiveLocalStoreDataflow dataflow = getClassContext().getLiveLocalStoreDataflow(this.method); CFG cfg = getClassContext().getCFG(method); Collection<BasicBlock> blockList = cfg.getBlocksContainingInstructionWithOffset(obj.getHandlerPC()); for (Iterator<BasicBlock> i = blockList.iterator(); i.hasNext(); ) { BasicBlock block = i.next(); InstructionHandle first = block.getFirstInstruction(); if (first != null && first.getPosition() == obj.getHandlerPC() && first.getInstruction() instanceof ASTORE) { ASTORE astore = (ASTORE) first.getInstruction(); BitSet liveStoreSet = dataflow.getFactAtLocation(new Location(first, block)); if (!liveStoreSet.get(astore.getIndex())) {  if (DEBUG) { System.out.println("Dead exception store at " + first); } caughtException.dead = true; break; } } } } catch (DataflowAnalysisException e) { bugReporter.logError("Error checking for dead exception store: " + e.toString()); } catch (CFGBuilderException e) { bugReporter.logError("Error checking for dead exception store: " + e.toString()); }
	public void visit(CodeException obj) {		super.visit(obj);		int type = obj.getCatchType();		if (type == 0) return;		String name = getConstantPool().constantToString(getConstantPool().getConstant(type));		catchList.add(new CaughtException(name, obj.getStartPC(), obj.getEndPC(), obj.getHandlerPC()));	}