你的位置:首页 > 软件开发 > ASP.net > 十五天精通WCF——第十四天 一起聊聊FaultException

十五天精通WCF——第十四天 一起聊聊FaultException

发布时间:2015-07-24 02:00:07
我们在玩web编程的时候,可能你会不经意的见到一些http500的错误,我想你应该不会陌生的,原因你应该也知道,服务器异常嘛,这时候clr会把这个未处理的异常抛给iis并且包装成http500的错误返回到客户端,就比如下面这样。 从这张图中,我故意输入了xss字符,然后 ...

  

   我们在玩web编程的时候,可能你会不经意的见到一些http500的错误,我想你应该不会陌生的,原因你应该也知道,服务器异常嘛,

这时候clr会把这个未处理的异常抛给iis并且包装成http500的错误返回到客户端,就比如下面这样。

十五天精通WCF——第十四天 一起聊聊FaultException

 

 

从这张图中,我故意输入了xss字符,然后的然后,web程序自爆异常,其实我想表达的意思就是,虽然说web程序抛异常了,但不代表iis就

挂了,所以iis还是需要给客户端做出反馈,这就有了http header,和body信息,同样的道理,get='_blank'>wcf的服务器异常机制也是这样。。。service

抛出了异常,不代表console就挂了,console要做的事情就是把这个异常包装起来丢给调用方,而wcf是怎么包装的呢???就是用了这篇所

说的FaultException。。。

 

一:FaultException

1. faultexception是干什么的?

  刚才我也说了,这个异常就是wcf来包装远程错误的,具体的类含义就是表示“SOAP错误“,如果你够细心的话,你还会发现到它有个属性

叫Serializable,有了它,这个叼毛就可以序列化到Soap消息中,对伐???

十五天精通WCF——第十四天 一起聊聊FaultException

 

2. 如果挖出faultexception?

  挖出这个exception的方法有很多,比如我来造一个“除以0”的异常,如下所示:

Service:

 1   public class HomeService : IHomeService 2   { 3     public Student Get(string id) 4     { 5       //这里必然会抛出异常。。。 6       var result = Convert.ToInt32(id) / Convert.ToInt32("0"); 7  8       return new Student() { ID = Convert.ToInt32(id), Name = "hxc", SNS = "001" }; 9     }10   }

原标题:十五天精通WCF——第十四天 一起聊聊FaultException

关键词:wcf

wcf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。