Reputation: 111
I get this exception:
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()
in this 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<Class1> BeginHandler, EndHandler;
readonly EventHandler<Class2> Handler2;
readonly EventHandler<Class3> Handler3;
public TheClass(Attr1 attr1, Attr2 attr2, EventHandler<Class1> beginHandler, EventHandler<Class1> endHandler, EventHandler<Class2> handler2, EventHandler<Class3> 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<Args2>(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<Args2>(List_Event1);
}
if (EndHandler != null)
{
try
{
EndHandler(this, args1);
}
catch { }
}
}
}
I don't see any place where the mentioned handle null exception could be thrown. Do you see anyone?
To Veer: How could you changed meaning of my question so much?
To those who approved it: How could you agree with it?
Upvotes: 2
Views: 1079
Reputation: 2047
The NullReferenceException can be thrown from inlined methods. Look into Method1 and Method2.
Upvotes: 1
Reputation: 3365
In this code, inside the try catch block you will not get the null exception because catch block is empty so, Exception will not thrown out side, check other objects.
Upvotes: 1