我正在写一些代码,我需要使用我自己的HttpResponse
对象来捕获另一个对象上的方法的输出,该对象将HttpResponse
作为参数。问题是,这个其他对象(我不能修改)调用HttpResponse.End()
,这会导致“对象引用未设置为对象的实例”异常被抛出。我能做些什么呢?为什么我的自定义HttpResponse在HttpResponse.End()上抛出异常?
Dim myStringbuilder As New StringBuilder
Dim myStringWriter As New IO.StringWriter(myStringbuilder)
Dim myResponse As New Web.HttpResponse(myStringWriter)
someObject.doStuffWithHttpResponse(myResponse) ' calls myResponse.End() and crashes
下面是有关该错误的一些更完整的信息,在控制台应用程序从下面的代码抛出:
Dim myStringbuilder As New StringBuilder
Dim myStringWriter As New IO.StringWriter(myStringbuilder)
Dim myResponse As New Web.HttpResponse(myStringWriter)
Try
myResponse.End()
Catch ex As Exception
Console.WriteLine(ex.ToString)
End Try
这里是异常的文本:
System.NullReferenceException:你调用的对象是空的。 at System.Web.HttpResponse.End() at ConsoleApplication1.Module1.Main()in C:\ Documents and Settings \ joe.user \ Local Settings \ Application Data \ Temporary Projects \ ConsoleApplication1 \ Module1.vb:line 10
Response.End()通常会引发ThreadAbortException。你可以包括堆栈跟踪?可以更好地帮助我们理解为什么你会得到一个空引用异常。 – mikemanne 2010-07-27 21:10:22
我已经发布了例外的文字。正如你所看到的,没有'ThreadAbortException'。 – 2010-07-28 13:19:29