title: NullReferenceException thrown?
body: <p>I get this exception:</p>
  
  <pre><code>NullReferenceException
  Object reference not set to an instance of an object
     at Namespace.TheClass.TheMethod()
     at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
     at System.Threading.ExecutionContext.runTryCode(Object userData)
     at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
     at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
     at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
     at System.Threading.ThreadHelper.ThreadStart()
  </code></pre>
  
  <p>in this code:</p>
  
  <pre><code>public class TheClass : TheBaseClass
  {
      protected IList1 List;
      public object Object1;
      public ManualResetEvent MrEvent = new ManualResetEvent(false);
      readonly Attr1 Attr1;
      readonly Attr2 Attr2;
      readonly EventHandler&lt;Class1&gt; BeginHandler, EndHandler;
      readonly EventHandler&lt;Class2&gt; Handler2;
      readonly EventHandler&lt;Class3&gt; Handler3;
  
      public TheClass(Attr1 attr1, Attr2 attr2, EventHandler&lt;Class1&gt; beginHandler, EventHandler&lt;Class1&gt; endHandler, EventHandler&lt;Class2&gt; handler2, EventHandler&lt;Class3&gt; handler3)
      {
          this.Attr1 = attr1;
          this.Attr2 = attr2;
          this.BeginHandler = beginHandler;
          this.EndHandler = endHandler;
          this.Handler2 = handler2;
          this.Handler3 = handler3;
          Thread t = new Thread(Run);
          t.IsBackground = true;
          t.Start();
      }
  
      void TheMethod()
      {
          Args1 args1 = new Args1();
          if (BeginHandler != null)
          {
              try
              {
                  BeginHandler(this, args1);
              }
              catch { }
          }
  
          try
          {
              List = GetList(args1);
          }
          catch { }
  
          if (List != null)
          {
              List.Event1 += new EventHandler&lt;Args2&gt;(List_Event1);
          }
  
          if (Handler3 != null)
          {
              try
              {
                  Args3 args3 = new Args3(args1.Attr1, args1.Attr2);
                  Handler3(this, args3);
                  this.Object1 = args3.Object1;
              }
              catch { }
          }
  
          if (this.Object1 == null)
          {
              if (args1.Attr1 != null)
                  try
                  {
                      this.Object1 = Class4.GetObject(args1.Attr1);
                  }
                  catch { }
          }
  
          MrEvent.Set();
          Method1();
          Method2();
  
          if (List != null)
          {
              List.Event1 -= new EventHandler&lt;Args2&gt;(List_Event1);
          }
  
          if (EndHandler != null)
          {
              try
              {
                  EndHandler(this, args1);
              }
              catch { }
          }
      }
  }
  </code></pre>
  
  <p>I don't see any place where the mentioned handle null exception could be thrown. Do you see anyone?</p>
  
  <p><em>To Veer: How could you changed meaning of my question so much?<br />
  To those who approved it: How could you agree with it?</em></p>