我正在寫一些代碼,我需要使用我自己的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