4.XML/JSON异常包

Treelist、Report组件通过Http Request向服务器索取数据，如果服务器遇到异常，通常返回的Http状态码为非200，组件将直接抛出该异常页面。在Web Service规范中，如果服务器能捕捉到异常(try / catch)，通常会采用SOAP协议中的fault包返回，使得客户端能比较友好地显示异常信息。
Supcan组件对非Web Service的普通XML/JSON格式的数据响应包也提供了类似的扩展支持，只要XML/JSON包符合如下格式(我们称之为 SoapLike 异常包，即格式参考自SOAP)，客户端就能弹出用户能接受的错误信息:

     <?xml version="1.0" encoding="UTF-8" ?>
     <fault>
     　　　<faultcode>错误代码</faultcode>　　//或<code>
     　　　<faultstring>错误</faultstring>
     　　　<detail>详细描述</detail>
     　　　<reason>错误原因</reason>
     　　　<faultactor>错误角色</faultactor>
     </fault>

在<fault>下，至少要有上述5种元素中的一种，Supcan组件就把这个包当作异常包看待，并以友好的提示弹出该信息。
比如，返回串：

     <Fault><FaultString>不严重的异常</FaultString><detail>服务器过于繁忙, 请稍候再访问.</detail></Fault>

其界面表现为：
也支持JSON格式，例如:

     {"Fault": {"faultCode":"3001", "detail": "服务繁忙"}}

在Treelist的"18.分页方案(一)"演示页中，后端源码中有一段模拟拒绝服务的SoapLike XML串，可参考这段C#源码(在技术分析区中).