Graph Interface: Insertion Exception

Our Graph interface is a representation for directed simple graph. Notice the exceptions thrown by the insert method:

/**
 * Insert a new edge.
 *
 * @param from Vertex position where edge starts.
 * @param to   Vertex position where edge ends.
 * @param e    Element to insert.
 * @return Edge position created to hold element.
 * @throws PositionException  If either vertex position is invalid.
 * @throws InsertionException If insertion would create a self-loop or
 *                            duplicate edge.
 */
Edge<E> insert(Vertex<V> from, Vertex<V> to, E e)
    throws PositionException, InsertionException;

We don't allow loop or multiple edge.

Notice, on the hand, there is no exception for when the data e is null.