码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-08-29 22:56:53      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 
 6 namespace Web_Cassini
 7 {
 8     /// <summary>
 9     /// response1 的摘要说明
10     /// </summary>
11     public class response1 : IHttpHandler
12     {
13 
14         public void ProcessRequest(HttpContext context)
15         {
16             context.Response.ContentType = "text/plain";
17             string username = context.Request["username"];
18             string password = context.Request["password"];
19             if(string.IsNullOrWhiteSpace(username))
20             {
21                 context.Response.Write("用户名不能为空" + "\n");
22                 //return;
23                 try
24                 {
25                     context.Response.End(); //本质就是一个抛异常--> 效率低能不用最好不用
26                     //EndHandler(context);
27                 }
28                 catch(Exception ex)
29                 {
30                     context.Response.Write(ex.ToString());
31                 }
32             }
33             if (string.IsNullOrWhiteSpace(password))
34             {
35                 context.Response.Write("密码不能为空"+"\n");
36                 //return;
37                 //context.Response.End(); 
38                 EndHandler(context);
39             }
40             context.Response.Write("插入成功" + "\n");
41         }
42 
43         private void EndHandler(HttpContext context)
44         {
45             context.Response.Write("终止HttpHandler" + "\n");
46             context.Response.End();  //子方法中终止进程 只有抛异常才能终止当前执行 不能用return End()本质就是抛出线程异常
47         }
48 
49         public bool IsReusable
50         {
51             get
52             {
53                 return false;
54             }
55         }
56     }
57 }
context.Response.End()的用法和本质

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

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

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

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

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

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

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

标签:

原文地址:http://www.cnblogs.com/adolphyang/p/4769902.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!