diff --git a/src/main/java/kieker/analysis/graph/impl/ExceptionFactory.java b/src/main/java/kieker/analysis/graph/impl/ExceptionFactory.java
index f437379e32450c8d33ff89145759c990c175bf33..862e44aa80133ad0ddc7f6c51bf2329ec3d96b95 100644
--- a/src/main/java/kieker/analysis/graph/impl/ExceptionFactory.java
+++ b/src/main/java/kieker/analysis/graph/impl/ExceptionFactory.java
@@ -33,6 +33,10 @@ class ExceptionFactory {
 		return new IllegalStateException("Edge with id does not exist: " + id);
 	}
 
+	public static IllegalStateException verticesAreNotInSameGraph(final Object id1, final Object id2) {
+		return new IllegalStateException("Vertices with ids are not in the same graph: " + id1 + ", " + id2);
+	}
+
 	public static IllegalArgumentException bothIsNotSupported() {
 		return new IllegalArgumentException("A direction of BOTH is not supported");
 	}
diff --git a/src/main/java/kieker/analysis/graph/impl/GraphImpl.java b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java
index 8bb08ffe0a90f9012cfe8c1ed5ce3391fb6399c0..58cccb73e4c3d5846e9265cef97dd18a44dcd5ae 100644
--- a/src/main/java/kieker/analysis/graph/impl/GraphImpl.java
+++ b/src/main/java/kieker/analysis/graph/impl/GraphImpl.java
@@ -89,8 +89,7 @@ public class GraphImpl extends ElementImpl implements Graph {
 		}
 
 		if (outVertexParents.peek().graph != inVertexParents.peek().graph) {
-			// throw exception TODO
-			throw new IllegalStateException();
+			throw ExceptionFactory.verticesAreNotInSameGraph(outVertex.getId(), inVertex.getId());
 		}
 
 		GraphImpl firstEqualParent = null;