异常被捕后停止处理页面

时间:2014-05-06 15:38:15

标签: c# asp.net exception-handling

TL; DR

在C#/ ASP.NET中,如何在捕获异常后停止处理页面?

详情

我有四个try / catch块试图从MS SQL数据库中提取数据,我创建了一个ThrowException()方法来处理异常。在那个方法中,我将异常文本写入数据库表,所以我认为我应该有一个try / catch,并且在屏幕上写出那个异常(事情显然很糟糕)如果我们到这里)但我得到这个文本的四个副本到屏幕上;如何在调用catch块后停止处理页面?

3 个答案:

答案 0 :(得分:2)

假设您可以在异常处理程序中保留HttpResponse对象,您可以清除/刷新响应数据,然后编写错误,然后HttpResponse.End()终止进一步执行。< / p>

获得回复的一种方法是HttpContext.Current.Response

请注意,HttpResponse.End()使用流控制的异常,并且有点反模式。但是,它应该适合你的情况。

答案 1 :(得分:2)

HttpApplication.CompleteRequest(请参阅MSDN)是结束请求的推荐方式。与HttpResponse.End不同,它不会抛出ThreadAbortException

答案 2 :(得分:1)

Response.End()将停止执行,但请确保您还发布了数据库对象。