title: Why not throw an exception if [super init] returns nil?
body: <p>This is considered typical</p>
  
  <pre><code>- (id)init {
      self = [super init];
      if (self) {
          // &lt;#initializations#&gt;
      }
      return self;
  }
  </code></pre>
  
  <p>but wouldn't it be better to go with something like this which actually responds appropriately?</p>
  
  <pre><code>- (id)init {
      self = [super init];
      if (self) {
          // &lt;#initializations#&gt;
      } else {
         @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:@"you think your constructor is executing, but it's not"] userInfo:nil]
      }
      return self;
  }
  </code></pre>
  
  <p><BR>
  The corollary to this question is, "under what conditions would <code>[super init]</code> return <code>nil</code> and <strong>shouldn't you handle that in the <code>init</code> method?</strong>"</p>