diff --git a/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java b/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java
index 9b8cd1a..3b82874 100644
--- a/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java
+++ b/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Closure.java
@@ -452,7 +452,7 @@
                     }
                 }
 
-                throw new IllegalArgumentException("Command not found: " + scmd);
+                throw new CommandNotFoundException(scmd);
             }
         }
         return ((Function) x).execute(session, values);
diff --git a/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/CommandNotFoundException.java b/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/CommandNotFoundException.java
new file mode 100644
index 0000000..1bbc9cd
--- /dev/null
+++ b/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/CommandNotFoundException.java
@@ -0,0 +1,35 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.felix.gogo.runtime;
+
+/**
+ * Thrown if an unknown command is entered into a shell or passed on the command line
+ */
+public class CommandNotFoundException extends IllegalArgumentException {
+    private final String command;
+
+
+    public CommandNotFoundException(String command) {
+        super("Command not found: " + command);
+        this.command = command;
+    }
+
+    public String getCommand() {
+        return command;
+    }
+}
