diff --git a/src/name.hpp b/src/name.hpp
index 96d43c0..6d7582f 100644
--- a/src/name.hpp
+++ b/src/name.hpp
@@ -346,10 +346,21 @@
   {
     return get(i);
   }
-  
+
+  /**
+   * @brief Get component at the specified index
+   *
+   * Unlike get() and operator[] methods, at() checks for out of bounds
+   * and will throw Name::Error when it happens
+   *
+   * @throws Name::Error if index out of bounds
+   */
   const Component&
   at(ssize_t i) const
   {
+    if ((i >= 0 && i >= size()) || (i < 0 && i < -size()))
+      throw Error("Requested component does not exist (out of bounds)");
+
     return get(i);
   }
 
diff --git a/tests/test-name.cpp b/tests/test-name.cpp
index 236f8b1..b80e37e 100644
--- a/tests/test-name.cpp
+++ b/tests/test-name.cpp
@@ -32,7 +32,20 @@
                              0x6e,  0x64,  0x6e};
 
 
-BOOST_AUTO_TEST_CASE (Encode)
+BOOST_AUTO_TEST_CASE(Basic)
+{
+  Name name("/hello/world");
+
+  BOOST_CHECK_NO_THROW(name.at(0));
+  BOOST_CHECK_NO_THROW(name.at(1));
+  BOOST_CHECK_NO_THROW(name.at(-1));
+  BOOST_CHECK_NO_THROW(name.at(-2));
+
+  BOOST_CHECK_THROW(name.at(2), Name::Error);
+  BOOST_CHECK_THROW(name.at(-3), Name::Error);
+}
+
+BOOST_AUTO_TEST_CASE(Encode)
 {
   Name name("/local/ndn/prefix");
 
@@ -57,7 +70,7 @@
 }
 
 
-BOOST_AUTO_TEST_CASE (Decode)
+BOOST_AUTO_TEST_CASE(Decode)
 {
   Block block(TestName, sizeof(TestName));
 
@@ -66,7 +79,7 @@
   BOOST_CHECK_EQUAL(name.toUri(), "/local/ndn/prefix");
 }
 
-BOOST_AUTO_TEST_CASE (AppendsAndMultiEncode)
+BOOST_AUTO_TEST_CASE(AppendsAndMultiEncode)
 {
   Name name("/local");
   
