title: Twisted Python: reactor and protocol
body: <p>I have several questions about the Twisted reactor. </p>
  
  <p>1/ What kind of errors would crash/stop/terminate the reactor? what kind of errors would not?</p>
  
  <p>2/ I have two reactors, each running a different protocol. I have protocols A and B. </p>
  
  <p>One reactor creates a new instance of protocol A every time it handles an input. If there is an error in an instance of protocol A, that error only affects the instance, and the reactor keeps running smoothly.  </p>
  
  <p>The other reactor runs only ONE instance of protocol B (specifically I use it to handle standard IO). It is simply like this:</p>
  
  <pre><code>stdio.StandardIO(ProtocolB())
  reactor.run()
  </code></pre>
  
  <p>If an input somehow gives an error in Protocol B, then it affects the entire reactor. Does the reactor actually stop in that case? </p>
  
  <p>3/ In the case of the second reactor above, is it possible to create a new instance of protocol B to replace the old instance if an error is detected?</p>