diff --git a/src/cs/MonoGame.Extended.Collisions/CollisionComponent.cs b/src/cs/MonoGame.Extended.Collisions/CollisionComponent.cs
index 9677c14f..d615220e 100644
--- a/src/cs/MonoGame.Extended.Collisions/CollisionComponent.cs
+++ b/src/cs/MonoGame.Extended.Collisions/CollisionComponent.cs
@@ -104,7 +104,13 @@ namespace MonoGame.Extended.Collisions
/// Target to insert.
public void Insert(ICollisionActor target)
{
- _layers[target.LayerName ?? DEFAULT_LAYER_NAME].Space.Insert(target);
+ var layerName = target.LayerName ?? DEFAULT_LAYER_NAME;
+ if (!_layers.TryGetValue(layerName, out var layer))
+ {
+ throw new UndefinedLayerException(layerName);
+ }
+
+ layer.Space.Insert(target);
}
///
diff --git a/src/cs/MonoGame.Extended.Collisions/Layers/UndefinedLayerException.cs b/src/cs/MonoGame.Extended.Collisions/Layers/UndefinedLayerException.cs
new file mode 100644
index 00000000..a27b5b6b
--- /dev/null
+++ b/src/cs/MonoGame.Extended.Collisions/Layers/UndefinedLayerException.cs
@@ -0,0 +1,18 @@
+namespace MonoGame.Extended.Collisions.Layers;
+
+using System;
+
+///
+/// Thrown when the collision system has no layer defined with the specified name
+///
+public class UndefinedLayerException : Exception
+{
+ ///
+ /// Thrown when the collision system has no layer defined with the specified name
+ ///
+ /// The undefined layer name
+ public UndefinedLayerException(string layerName)
+ : base($"Layer with name '{layerName}' is undefined")
+ {
+ }
+}