title: Make NSDictionary throw exception when object not found
body: <p>I would like to make a NSDictionary throw an exception instead of returning a nil when a key is not found.</p>
  
  <p>I've done some research and, ok, I get it, it is a bad idea to subclass any of the collection classes. Then, what would be the best approach to achieve this?</p>
  
  <p>Notice I would like to preserve the subscript syntax, and the creation via literals, or at least get the most out of it.</p>
  
  <p>The category approach is easy but doesn't let me use the subscript syntax:</p>
  
  <pre><code>id value = dict[@"non-existing-key"]; // throws exception
  </code></pre>
  
  <p>And the wrapper approach doesn't let me use the literal creation:</p>
  
  <pre><code>MyDictWrapper *dict = @{ @"key" : @"value" }; // this returns a standard NSDictionary
  </code></pre>
  
  <p>Is there a way to make a dictionary throw and exception when the item is not found and preserve this very useful and handy syntax?</p>