package org.checkerframework.dataflow.cfg.block; import java.util.Map; import java.util.Set; import javax.lang.model.type.TypeMirror; import org.checkerframework.dataflow.cfg.node.Node; /** * Represents a basic block that contains exactly one {@link Node} which can * throw an exception. This block has exactly one non-exceptional successor, and * one or more exceptional successors. * * <p> * * The following invariant holds. * * <pre> * getNode().getBlock() == this * </pre> * * @author Stefan Heule * */ public interface ExceptionBlock extends SingleSuccessorBlock { /** * @return The node of this block. */ Node getNode(); /** * @return The list of exceptional successor blocks as an unmodifiable map. */ Map<TypeMirror, Set<Block>> getExceptionalSuccessors(); }