context = new ProcessingContext(context.previousVertice, finallyStart, Pair.create(finallyStart, bc));
}
//exceptions next
if (node.catchClauses() != null && node.catchClauses().size() > 0) {
for(Object catchClauseObj: node.catchClauses()) {
CatchClause catchClause = (CatchClause) catchClauseObj;
CFGVertice catchStart = graph.addNewVertice(catchClause, "Catch " + catchClause.getException());
graph.createExceptionEdge(context.previousVertice, catchStart, catchClause.getException());
BlockContext cbc = pushNewBlockContext(node);
SimpleName excVariable = catchClause.getException().getName();
if (excVariable!=null)
cbc.add(excVariable);
processBlock(catchClause.getBody(), context.setPrevious(catchStart), cbc);
if (blockStack.pop() != cbc)
throw new MethodCFGBuilderException("Different block context!!");
}
}
acceptChild(node.getBody(), context);