title: How to catch unhandled error in Deferred originating from reactor.stop()
body: <p>I am new to twisted and having trouble with the following script.</p>
  
  <p>When I run the following:</p>
  
  <pre><code>#!/usr/bin/env python
  from twisted.internet import defer
  from twisted.web.client import getPage, reactor
  
  def success(results):
    print 'success'
  
  def error(results):
    print 'error'
    return results
  
  def finished(results):
    print 'finished'
    reactor.stop()
  
  tasks = []
  
  d = getPage('thiswontwork').addCallback(success).addErrback(error)
  tasks.append(d)
  
  dl = defer.DeferredList(tasks)
  dl.addCallback(finished)
  
  reactor.run()
  </code></pre>
  
  <p>I get the following output:</p>
  
  <pre><code>error
  finished
  Unhandled error in Deferred:
  Unhandled Error
  Traceback (most recent call last):
  Failure: twisted.internet.error.ConnectionRefusedError: Connection was refused by other side: 61: Connection refused.
  </code></pre>
  
  <p>My question is why am I getting an unhandled error when I seem to have caught the error with my error callback?</p>