title: Use an object even though `__init__()` raises an exception?
body: <p>I'm in a situation where some meager important parts of a classes <code>__init__</code> method could raise an exception. In that case I want to display an error message but carry on using the instance.</p>
  
  <p>A very basic example:</p>
  
  <pre><code>class something(object):
      def __init__(self):
          do_something_important()
          raise IrrelevantException()
  
      def do_something_useful(self):
          pass
  
  try:
      that_thing = something()
  except IrrelevantException:
      print("Something less important failed.")
  
  that_thing.do_something_useful()
  </code></pre>
  
  <p>However, the last line does not work, because <code>that_thing</code> is not defined. Strange thing is, I could swear I've done things like this before and it worked fine. I even thougt about ways to keep people from using such an unfinished instance, because I found out it gets created even in case of errors. Now I wanted to use that and it does not work. Hmmm...?!?</p>
  
  <p>PS: <code>something</code> was written by myself, so I'm in control of everything.</p>