context.response.end()和return的区别

时间:2023-03-09 05:59:32
context.response.end()和return的区别

最近忽然想起这个问题,上网查了很多,觉得这个网友回答的很给力,从本质上剖析了问题。最后发现这篇文章也是转载自博客园的一位网友。http://www.cnblogs.com/adolphyang/p/4769902.html

不得不说这位网友很牛X,上面还有代码示例。

那这里我就只给自己做一个简单的笔记,也算加深下记忆。

context.Response.End()的用法和本质:

用法:可以用来终止进程,即当前HttpHandler的执行,

  也可以在子方法中终止HttpHandler的执行,

  实际在子方法中终止程序,只有一种可能,那就是程序抛异常,所以context.Response.End()得本质就是抛出了线程异常

  由于抛异常的效率较低,所以能不能就不用,在主方法中最好还是使用return;终止程序比较好,

  但是在子方法中只能使用抛异常终止程序,即使用context.Response.End()终止程序。

总的来说:如果在子方法中还想终止整个程序的执行就要使用Response.End()方法,如果在主函数中则尽量使用return来终止程序的执行。