拼吾爱程序人生

首页 » .Net编程 » Visual Studio.NET » .Net Compact Framework 基础篇之Exception
cobra - 2008-9-21 23:21:00
无论你的程序写的多好,总无法避免产生异常。既然产生异常,那我们就应该去捕获它。在.Net CF中一些异常的类型和消息不足以描述问题的根源,那么,查看一下它是否有自定义属性可能会让你立刻知道到底是哪出了问题。


WebException:
可以根据其WebException.Status属性的类型来判断。该类型是WebExceptionStatus枚举,它有16种可能的值,足以描述错误。

成员名称


说明


Success


未遇到任何错误。


NameResolutionFailure


名称解析服务未能解析主机名。


ConnectFailure


未能在传输级联系到远程服务点。


ReceiveFailure


没有从远程服务器接收到完整响应。


SendFailure


未能将完整请求发送到远程服务器。


PipelineFailure


该请求是管线请求,并且连接未接收到响应即被关闭。


RequestCanceled


请求被取消,WebRequest..::.Abort
方法被调用,或者发生了不可分类的错误。这是
Status
的默认值。


ProtocolError


从服务器接收到的响应完成了,但它指示了一个协议级错误。例如,HTTP 协议错误(如 401 访问被拒绝)使用此状态。


ConnectionClosed


连接被过早关闭。


TrustFailure


未能验证服务器证书。


SecureChannelFailure


使用 SSL 建立连接时发生错误。


ServerProtocolViolation


此服务器响应不是有效的 HTTP 响应。


KeepAliveFailure


指定 Keep-alive 标头的请求连接被意外关闭。


Pending


内部异步请求挂起。


Timeout


在请求的超时期限内未收到任何响应。


ProxyNameResolutionFailure


名称解析服务未能解析代理主机名。





当然,你通过WebRequest创建一个请求后,你可以通过请求来获取HttpWebResponse。通过HttpWebResponse.StatusCode来判断当前错误,也可以得到一些精确的消息。

成员名称


说明


Continue


等效于 HTTP 状态 100Continue
指示客户端可能继续其请求。


SwitchingProtocols


等效于 HTTP 状态 101SwitchingProtocols
指示正在更改协议版本或协议。


OK


等效于 HTTP 状态 200OK
指示请求成功,且请求的信息包含在响应中。这是最常接收的状态代码。


Created


等效于 HTTP 状态 201Created
指示请求导致在响应被发送前创建新资源。


Accepted


等效于 HTTP 状态 202Accepted
指示请求已被接受做进一步处理。


NonAuthoritativeInformation


等效于 HTTP 状态 203NonAuthoritativeInformation
指示返回的元信息来自缓存副本而不是原始服务器,因此可能不正确。


NoContent


等效于 HTTP 状态 204NoContent
指示已成功处理请求并且响应已被设定为无内容。


ResetContent


等效于 HTTP 状态 205ResetContent
指示客户端应重置(或重新加载)当前资源。


PartialContent


等效于 HTTP 状态 206PartialContent
指示响应是包括字节范围的 GET 请求所请求的部分响应。


MultipleChoices


等效于 HTTP 状态 300MultipleChoices
指示请求的信息有多种表示形式。默认操作是将此状态视为重定向,并遵循与此响应关联的 Location 头的内容。


Ambiguous


等效于 HTTP 状态 300Ambiguous
指示请求的信息有多种表示形式。默认操作是将此状态视为重定向,并遵循与此响应关联的 Location 头的内容。


MovedPermanently


等效于 HTTP 状态 301MovedPermanently
指示请求的信息已移到 Location 头中指定的 URI 处。接收到此状态时的默认操作为遵循与响应关联的 Location 头。


Moved


等效于 HTTP 状态 301Moved
指示请求的信息已移到 Location 头中指定的 URI 处。接收到此状态时的默认操作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求将使用 GET 方法。


Found


等效于 HTTP 状态 302Found
指示请求的信息位于 Location 头中指定的 URI 处。接收到此状态时的默认操作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求将使用 GET 方法。


Redirect


等效于 HTTP 状态 302Redirect
指示请求的信息位于 Location 头中指定的 URI 处。接收到此状态时的默认操作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求将使用 GET 方法。


SeeOther


等效于 HTTP 状态 303。作为 POST 的结果,SeeOther
将客户端自动重定向到 Location 头中指定的 URI。用 GET 生成对 Location 头所指定的资源的请求。


RedirectMethod


等效于 HTTP 状态 303。作为 POST 的结果,RedirectMethod
将客户端自动重定向到 Location 头中指定的 URI。用 GET 生成对 Location 头所指定的资源的请求。


NotModified


等效于 HTTP 状态 304NotModified
指示客户端的缓存副本是最新的。未传输此资源的内容。


UseProxy


等效于 HTTP 状态 305UseProxy
指示请求应使用位于 Location 头中指定的 URI 的代理服务器。


Unused


等效于 HTTP 状态 306Unused
是未完全指定的 HTTP/1.1 规范的建议扩展。


TemporaryRedirect


等效于 HTTP 状态 307TemporaryRedirect
指示请求信息位于 Location 头中指定的 URI 处。接收到此状态时的默认操作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。


RedirectKeepVerb


等效于 HTTP 状态 307RedirectKeepVerb
指示请求信息位于 Location 头中指定的 URI 处。接收到此状态时的默认操作为遵循与响应关联的 Location 头。原始请求方法为 POST 时,重定向的请求还将使用 POST 方法。


BadRequest


等效于 HTTP 状态 400BadRequest
指示服务器未能识别请求。如果没有其他适用的错误,或者如果不知道准确的错误或错误没有自己的错误代码,则发送
BadRequest


Unauthorized


等效于 HTTP 状态 401Unauthorized
指示请求的资源要求身份验证。WWW-Authenticate 头包含如何执行身份验证的详细信息。


PaymentRequired


等效于 HTTP 状态 402。保留
PaymentRequired
以供将来使用。


Forbidden


等效于 HTTP 状态 403Forbidden
指示服务器拒绝满足请求。


NotFound


等效于 HTTP 状态 404NotFound
指示请求的资源不在服务器上。


MethodNotAllowed


等效于 HTTP 状态 405MethodNotAllowed
指示请求的资源上不允许请求方法(POST GET)。


NotAcceptable


等效于 HTTP 状态 406NotAcceptable
指示客户端已用 Accept 头指示将不接受资源的任何可用表示形式。


ProxyAuthenticationRequired


等效于 HTTP 状态 407ProxyAuthenticationRequired
指示请求的代理要求身份验证。Proxy-authenticate 头包含如何执行身份验证的详细信息。


RequestTimeout


等效于 HTTP 状态 408RequestTimeout
指示客户端没有在服务器期望请求的时间内发送请求。


Conflict


等效于 HTTP 状态 409Conflict
指示由于服务器上的冲突而未能执行请求。


Gone


等效于 HTTP 状态 410Gone
指示请求的资源不再可用。


LengthRequired


等效于 HTTP 状态 411LengthRequired
指示缺少必需的 Content-length 头。


PreconditionFailed


等效于 HTTP 状态 412PreconditionFailed
指示为此请求设置的条件失败,且无法执行此请求。条件是用条件请求标头(如 If-MatchIf-None-Match If-Unmodified-Since)设置的。


RequestEntityTooLarge


等效于 HTTP 状态 413RequestEntityTooLarge
指示请求太大,服务器无法处理。


RequestUriTooLong


等效于 HTTP 状态 414RequestUriTooLong
指示 URI 太长。


UnsupportedMediaType


等效于 HTTP 状态 415UnsupportedMediaType
指示请求是不支持的类型。


RequestedRangeNotSatisfiable


等效于 HTTP 状态 416RequestedRangeNotSatisfiable
指示无法返回从资源请求的数据范围,因为范围的开头在资源的开头之前,或因为范围的结尾在资源的结尾之后。


ExpectationFailed


等效于 HTTP 状态 417ExpectationFailed
指示服务器未能符合 Expect 头中给定的预期值。


InternalServerError


等效于 HTTP 状态 500InternalServerError
指示服务器上发生了一般错误。


NotImplemented


等效于 HTTP 状态 501NotImplemented
指示服务器不支持请求的函数。


BadGateway


等效于 HTTP 状态 502BadGateway
指示中间代理服务器从另一代理或原始服务器接收到错误响应。


ServiceUnavailable


等效于 HTTP 状态 503ServiceUnavailable
指示服务器暂时不可用,通常是由于过多加载或维护。


GatewayTimeout


等效于 HTTP 状态 504GatewayTimeout
指示中间代理服务器在等待来自另一个代理或原始服务器的响应时已超时。


HttpVersionNotSupported


等效于 HTTP 状态 505HttpVersionNotSupported
指示服务器不支持请求的 HTTP 版本。





SocketException:
通过ErrorCode属性获得详细信息。返回的是有系统的ErrorCode。这个只能查System Error Codes了。


SqlCeException:
错误存放在SqlCeErrorCollection中,需要对Errors属性进行迭代,返回SqlCeError对象,通过该对象的NativeError属性来获得错误号。有关这些错误的更多信息,请参见 SQL Server Mobile Books Online(《SQL Server Mobile 联机丛书》)。的“Troubleshooting”(疑难解答)一节中的“SQL Server Mobile Errors”(SQL Server Mobile 错误)。
可以参考黎波的《正确处理SqlCeException的方法


InvaildOperationExceptio:
可能在调用一个方法时遇到这个情况,可以检查下该对象的状态。


MissingMethodException:
在PInvoke时常发生。它就是一个通过查看Message属性来确定问题的根源。
比如在当写错了一个dll时,就会报“无法找到PInvokeDLL”
当dll没错,函数名错误时,就会报“无法找到PInvokeDLL中的入口点”


MissingManifestResourceException:
不能正确得到资源名称,可以通过检查程序集,找到资源的正确名称。


TypeLoadException:
加载类型失败,运行需要的某个程序集在目标设备(程序文件夹中获全局程序集缓存中)不存在。




(文/appleseeker  出处/博客园)

 您可能对 [Visual Studio.NET] 的这些文章也感兴趣:

.Net Compact Framework 基础篇之托管类
StyleCop SDK发布:解决规则不可定制化
VS2005常用插件搜罗
必须学习的10项.NET技术
Mono 1.2.6针对OS X的改变
Visual Studio 2008不兼容Visual SourceSafe
实例分析SharpDevelop代码完成功能
新版本的.NET会当作一个“Service Pack”发布
.NET Framework 应用架构指南2.0 Beta1发布
如何用.NET技术在线生成网站LOGO
1
查看完整版本: .Net Compact Framework 基础篇之Exception
Modify by pin5i DZNT_ExpandPackage 2.1.3258 2007-2008 pin5i.com
  Total Unique Visitors: