title: In BackgroundWorker: RunWorkerCompleted's e.Error == null even in case of error
body: <p>When I put try catch block around my time taking task. In RunWorkerCompleted() method e.error use to be null. When I remove try catch block then in RunWorkerCompleted() method e.error is not equal to null.</p>
  
  <p>Why is this strange behaviour?</p>
  
  <p>Code:</p>
  
  <pre><code>  public partial class LoginForm : Form
  {
      private static BackgroundWorker bw = new BackgroundWorker();
      private static ManualResetEvent mre = new ManualResetEvent(false);
  
      enum status
      {
          Blank,
          Success,
          Error
      };
  
      public LoginForm()
      {
          InterimProceedings();
          InitializeComponent();
      }
  
      private void InterimProceedings()
      {
          bw.DoWork += new DoWorkEventHandler(bw_DoWork);
          bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
  
          if (!bw.IsBusy)
          {
              bw.RunWorkerAsync();
          }
          else
          {
              throw new InvalidOperationException("BackgroundWorker is busy");
          }
      }
  
      private static void bw_DoWork(object sender, DoWorkEventArgs e)
      {
        //  Time taking task
            mre.Set();
      }
  
      private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
      {
          if (!(e.Error == null))
          {
              this.lbl_status.Text = "Cannot proceed, Error occured";
              appStatus = status.Error;
          }
          else
          {
              this.lbl_status.Text = "Good to go...";
              appStatus = status.Success;
          }
      }
  
      private void btn_login_Click(object sender, EventArgs e)
      {
          mre.WaitOne();
  
          if(appStatus == status.Success)
          {
              // Proceed with intended work
          }
  
          else
          {
              // Pop-up error occurred
          }
      }
  </code></pre>
  
  <p>}</p>